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

50 lines
1.6 KiB
PHP

<?php
/**
* documentation: https://docs.google.com/document/d/19tMnCzGgUF5UT__0AhbptLnCbBBVxX6uA4a_S0M4lFg/edit#
* Following up this model: https://drive.google.com/file/d/1iXlHDA4gD8UgFBBNGPeP6ypgN2YlLc9n/view
*/
echo "[" . date("Y-m-d H:i:s") . "] GPS trips job is starting.\n";
require __DIR__ . '/../../backend.php';
$db_host = $savvyext->cfgReadChar('gpsdatabase.host');
$db_name = $savvyext->cfgReadChar('gpsdatabase.name');
$db_user = $savvyext->cfgReadChar('gpsdatabase.user');
$db_pass = $savvyext->cfgReadChar('gpsdatabase.pass');
$db_port = $savvyext->cfgReadLong('gpsdatabase.port');
$gpsconnstr = "host=${db_host} port=${db_port} dbname=${db_name} user=${db_user} password=${db_pass}";
$gpsconn = pg_connect($gpsconnstr);
$gmclient = new GearmanClient();
$gmclient->addServer('127.0.0.1', 4730);
$q = "SELECT member_id, count(*) as count FROM members_tracking ";
$q .= "GROUP BY member_id";
$r = pg_query($gpsconn, $q);
if (!$r) {
echo pg_last_error($gpsconn);
}
if ($r && pg_num_rows($r) > 0) {
while ($row = pg_fetch_object($r)) {
$member_id = $row->member_id;
echo "[" . date("Y-m-d H:i:s") . "] Processing member_id = $member_id (total member records: $row->count )\n";
// dispatch jobs
echo "[" . date("Y-m-d H:i:s") . "] Dispatching jobs (member_id = $member_id) to gps_trips_worker.\n";
$gmclient->doBackground('gps_trips_worker', $member_id);
}
}
if ($gmclient->returnCode() != GEARMAN_SUCCESS) {
echo "bad return code\n";
exit;
}
pg_close($gpsconn);
echo "[" . date("Y-m-d H:i:s") . "] GPS trips job complete.\n";