public function test_cron_tasks() { /** @var \TPTaskRunner\Models\Task $task_1 */ $task_1 = factory(\TPTaskRunner\Models\Task::class)->create(); $task_1->next_run_at = \Carbon\Carbon::now()->addDay(1); $task_1->save(); /** @var \TPTaskRunner\Models\Task $task_2 */ $task_2 = factory(\TPTaskRunner\Models\Task::class)->create(); $query_1_count = \TPTaskRunner\Models\Task::cron()->count(); $query_2_count = \TPTaskRunner\Models\Task::cron(\Carbon\Carbon::now()->addDay(2))->count(); $this->assertNotEquals($query_1_count, $query_2_count); $this->assertTrue($query_1_count < $query_2_count); }
/** * Run all Tasks thats ready for that * @return array list of id`s with runned tasks */ public static function cronJob() { $tasks = Task::cron(); $started_tasks = []; /** @var Task $task */ foreach ($tasks as $task) { array_push($started_tasks, [$task->id]); $task->run(); } return $started_tasks; }