apiToken = $apiToken; } /** * Execute the job. * * @return void */ public function handle() { $date = date('Y-m-d'); $apiTokenStat = ApiTokenStat::where('date', $date) ->whereHas('apiToken', function ($q) { $q->where('id', $this->apiToken->id); })->firstOrNew(); $apiTokenStat->date = $date; $apiTokenStat->nb_calls += 1; $apiTokenStat->apiToken()->associate($this->apiToken); $apiTokenStat->saveOrFail(); } /** * Determine the time at which the job should timeout. * * @return \DateTime */ public function retryUntil() { return now()->addMinutes(rand(0, 360)); } /** * Get the middleware the job should pass through. * * @return array */ public function middleware() { return [ (new WithoutOverlapping(self::KEY)) ->releaseAfter(rand(90, 180)) ]; } }