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";