first commit
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
echo "[" . date("Y-m-d H:i:s") . "] parsedemail_item_fix_time_travel job is starting.\n";
|
||||
|
||||
require '../backend.php';
|
||||
|
||||
global $pgconn;
|
||||
|
||||
$db_host = $savvyext->cfgReadChar('database.host');
|
||||
$db_port = $savvyext->cfgReadLong('database.port');
|
||||
$db_name = $savvyext->cfgReadChar('database.name');
|
||||
$db_user = $savvyext->cfgReadChar('database.user');
|
||||
$db_pass = $savvyext->cfgReadChar('database.pass');
|
||||
$conn_string = "host=${db_host} port=${db_port} dbname=${db_name} user=${db_user} password=${db_pass}";
|
||||
$pgconn = pg_connect($conn_string);
|
||||
|
||||
$db_host = $savvyext->cfgReadChar('database_replica.host');
|
||||
$db_name = $savvyext->cfgReadChar('database_replica.name');
|
||||
$db_user = $savvyext->cfgReadChar('database_replica.user');
|
||||
$db_pass = $savvyext->cfgReadChar('database_replica.pass');
|
||||
$db_port = $savvyext->cfgReadLong('database_replica.port');
|
||||
$readOnlyReplicaConnstr = "host=${db_host} port=${db_port} dbname=${db_name} user=${db_user} password=${db_pass}";
|
||||
$readOnlyReplicaConn = pg_connect($readOnlyReplicaConnstr);
|
||||
|
||||
/*get travel_time is measured with seconds*/
|
||||
$total = $success = $failed = 0;
|
||||
|
||||
$r = get_duration_in_seconds();
|
||||
while ($f = pg_fetch_array($r, NULL, PGSQL_ASSOC)) {
|
||||
$total++;
|
||||
$id = $f['id'];
|
||||
$condition = "id=".$id;
|
||||
$duration = $f['new_duration'];
|
||||
$data = [
|
||||
"duration" => $duration
|
||||
];
|
||||
$updated = update_data($data, $condition);
|
||||
if ($updated > 0) {
|
||||
$success++;
|
||||
} else {
|
||||
$failed++;
|
||||
}
|
||||
}
|
||||
|
||||
echo "Total: " . $total . ".\n";
|
||||
echo "Success: : " . $success . ".\n";
|
||||
echo "Failed: : " . $failed . ".\n";
|
||||
pg_close($pgconn);
|
||||
|
||||
echo "[" . date("Y-m-d H:i:s") . "] parsedemail_item_fix_time_travel job complete.\n";
|
||||
function get_duration_in_seconds()
|
||||
{
|
||||
global $readOnlyReplicaConn;
|
||||
$q = "SELECT id, DATE_PART('hour', travel_date_end - travel_date)*60+DATE_PART('minute', travel_date_end - travel_date) AS new_duration
|
||||
FROM parsedemail_item
|
||||
WHERE transport_provider_id IS NOT NULL
|
||||
GROUP BY id, DATE_PART('hour', travel_date_end - travel_date)*60+DATE_PART('minute', travel_date_end - travel_date)
|
||||
HAVING duration >DATE_PART('hour', travel_date_end - travel_date)*60+DATE_PART('minute', travel_date_end - travel_date)
|
||||
AND DATE_PART('hour', travel_date_end - travel_date)*60+DATE_PART('minute', travel_date_end - travel_date)>0";
|
||||
return pg_query($readOnlyReplicaConn, $q);
|
||||
}
|
||||
|
||||
function update_data($data, $condition="1=1")
|
||||
{
|
||||
global $pgconn;
|
||||
if (count($data)>0) {
|
||||
$data_update="updated=NOW()";
|
||||
foreach ($data as $field => $val) {
|
||||
$data_update .= ", ${field}=" . ($val == 'NULL' ? "NULL" : "'${val}'");
|
||||
}
|
||||
$q = "UPDATE parsedemail_item SET " . $data_update . " WHERE " . $condition . "";
|
||||
$r = pg_query($pgconn, $q);
|
||||
if ($r) {
|
||||
return pg_affected_rows($r);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user