Laravel Работа для получения данных из API - PullRequest
1 голос
/ 15 февраля 2020

У меня есть таблица базы данных, которая будет постоянно обновляться.

game_id | end_time

Теперь, как мне создать задание, которое будет выполняться на этом end_time, задание получит некоторые данные от стороннего API, который будет зависеть от этого game_id.

Примечание: game_id и end_time меняются от каждой записи.

Я посмотрел на планировщик задач, но я не могу найти информацию, я думаю, что это только для определенного c времени.

1 Ответ

1 голос
/ 21 февраля 2020

Да, для этой задачи вы можете использовать планировщик 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';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...