【问题标题】:Laravel Jobs to get data from APILaravel Jobs 从 API 获取数据
【发布时间】:2020-05-30 21:53:27
【问题描述】:

我有这个将不断更新的数据库表。

game_id | end_time

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

注意:每条记录的 game_id 和 end_time 都会发生变化。

我查找了任务计划程序,但找不到我认为仅适用于特定时间的信息。

【问题讨论】:

    标签: laravel api vue.js


    【解决方案1】:

    是的,你可以使用 laravel 调度器来完成这个任务。您可以查看控制台命令类中的时间变量。 例如放入你的内核类:

    $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';
    }
    

    【讨论】:

      猜你喜欢
      • 2016-09-16
      • 1970-01-01
      • 2020-02-16
      • 2020-05-05
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 2020-01-21
      • 2017-12-06
      相关资源
      最近更新 更多