93 lines
2.9 KiB
PHP
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;
|
|
}
|