50 lines
1.6 KiB
PHP
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";
|