Laravel Jobs从API获取数据

问题描述 投票:0回答:1

我有此数据库表,该表将不断更新。

game_id | end_time

现在我如何创建将在此end_time上运行的作业,该作业将从第三方API获取一些数据,而该数据将依赖于此game_id

注意:game_id和end_time从每条记录更改。

我已经在任务计划程序上进行了查找,但是我找不到仅在特定时间使用的信息。

laravel api vue.js
1个回答
0
投票

是的,您可以使用laravel Scheduler来完成此任务。您可以在控制台命令类中查看time变量。例如放入您的内核类:

$schedule->command('ApiConnection:get')->everyFiveMinutes();

并且在您的ApiConnection类(handle()函数)中,您可以获得数据库记录:

Model::whereDate('end_time', '>=', Carbon::today())->get(); //format of Carbon function should be equal to your end_time column format, I mean I don't know if you use just date or date with time, etc

现在您应该可以按时间使用game_id数据了。

我还建议在数据库表中添加状态列,以便您可以控制已处理的记录,如下所示:

$models = Model::whereDate('end_time', '>=', Carbon::today())->where('status', 'awaiting')->get();
foreach ($models as $model) {
   $model->status = 'in progress';
   ...your api work here...
   $model->status = 'completed';
}
© www.soinside.com 2019 - 2024. All rights reserved.