function fire($job, $data = null) { $job->delete(); $flights = Flight::whereMissing(true)->select('flights.id', 'updates.timestamp')->join('positions', 'flights.id', '=', 'positions.flight_id')->join('updates', 'positions.update_id', '=', 'updates.id')->take(10000)->get(); foreach ($flights as $flight) { if (Carbon::now()->diffInMinutes(Carbon::parse($flight->timestamp)) >= 60) { $flight->delete(); // Log::info('queue:datafeed[' . $job->getJobId() . '] deleted flight #' . $flight->id . ', missing: ' . Carbon::now()->diffInMinutes(Carbon::parse($flight->timestamp))); } unset($flight); } }
/** * Prepares an array for the map and stores it in the database. * * @return void */ protected function map() { $flights = Flight::whereMissing(false)->whereIn('state', [1, 3])->join('pilots', 'flights.vatsim_id', '=', 'pilots.vatsim_id')->select('flights.*', 'pilots.name')->get()->transform(function ($flight) { return ['id' => $flight->id, 'callsign' => $flight->callsign, 'vatsim_id' => $flight->vatsim_id, 'pilot' => $flight->name, 'departure' => $flight->departure_id, 'arrival' => $flight->arrival_id, 'aircraft_code' => $flight->aircraft_code, 'aircraft_id' => $flight->aircraft_id, 'lat' => $flight->last_lat, 'lon' => $flight->last_lon, 'altitude' => $flight->last_altitude, 'speed' => $flight->last_speed, 'heading' => $flight->last_heading]; }); Cache::forever('vatsim.map', $flights); unset($flights); }