Files
FloatBackOfffice/CRONS/quotes_update_travel_date.php
T
dev-chiefworks f76abffdcd first commit
2022-05-31 16:21:53 -04:00

93 lines
2.9 KiB
PHP

<?php
session_start();
echo "[" . date("Y-m-d H:i:s") . "] GPS quotes_update_travel_time job is starting.\n";
require 'common/utils.php';
require 'common/config.php';
require 'common/address_city.php';
$total = $success = $failed = 0;
$conditions = [
"completed is not null AND travel_date is null",//
];
$limit =100;
$arr_timezones = [
];//address_id, timezone
$start = floor(microtime(true)*1000);
foreach ($conditions as $condition) {
$total = getTotalQuotesByCondition($condition);
for($i=0; $i<$total;$i+=$limit){
$offset =$i;
$quotes = getQuotesByCondition($condition,$limit, $offset);
while ($f = pg_fetch_assoc($quotes)) {
$total++;
$id = $f['id'];
$completed = $f['completed'];
if (!array_key_exists($f['location_start_id'], $arr_timezones)) {
echo "query time zone==========================================\n";
$timezone = getTzByAddressId($f['location_start_id']);
$arr_timezones[$f['location_start_id']] = $timezone;
}
$timezone = $arr_timezones[$f['location_start_id']];
$travel_date = convertUtcToLocal($completed, $timezone);
$data_update = [
'travel_date' => $travel_date,
];
$condition_update = "id = " . $id . "";
$startu = floor(microtime(true)*1000);
$updated = updateDataTable('quotes', $condition_update, $data_update);
$endu = floor(microtime(true)*1000);
$durationu=$endu-$startu;
echo $durationu." miliseconds ********************************************\n";
if ($updated) {
$success++;
} else {
$failed++;
}
}
if($i==200){
break;
}
}
}
$end = floor(microtime(true)*1000);
$duration = $end -$start;
echo "start: " . $start . ".\n";
echo "end: " . $end . ".\n";
echo "duration: " . $duration . " miliseconds.\n";
echo "Total: " . $total . ".\n";
echo "Success: : " . $success . ".\n";
echo "Failed: : " . $failed . ".\n";
echo "[" . date("Y-m-d H:i:s") . "] quotes_update_travel_time job complete.\n";
function getQuotesByCondition($condition, $limit=10, $offset=0)
{
global $readOnlyReplicaConn;
$q = "SELECT id,created,completed,location_start_id, location_end_id, travel_date
FROM quotes
WHERE " . $condition . "
ORDER BY id DESC
LIMIT ".$limit." offset ". $offset."";
echo $q."\n";
$r = pg_query($readOnlyReplicaConn, $q);
return $r;
}
function getTotalQuotesByCondition($condition)
{
global $readOnlyReplicaConn;
$q = "SELECT count(*) as total
FROM quotes
WHERE " . $condition . "
";
$r = pg_query($readOnlyReplicaConn, $q);
while ($f=pg_fetch_array($r)) {
return $f['total'];
}
return 0;
}