Как я могу выполнять работу cron с Queue Worker? (Laravel 5.3)

Я читаю здесь: https://laravel.com/docs/5.3/queues#running-the-queue-worker

Я хотел создать задание cron с помощью учебника, но я не совсем понимаю, как его реализовать

Мой случай таков:

Например, у меня есть порядок столов. Порядок таблицы имеет следующие поля:

  1. Статус, int (10)

  2. checkout_at, datetime

  3. cancelled_at, datetime

Я упоминаю только несколько полей

нота:

status = 1 -> Получено

status = 2 -> Отменено

status = 3 -> Waitng For Payment

Я хочу сделать логику так:

Если покупатель не оплатил заказ в течение 2 часов после checkout_at, измените статус на «отменен» и введите значение «cancelled_at»

Я создаю такую ​​функцию:

public function cron_job()
{
$users = DB::table('orders')
->select('*')
->first();

$checkout_at = $users->checkout_at;
$after = strtotime("+2 hours", strtotime($checkout_at));

if($checkout_at > $after) {
DB::table('orders')
->where('id', $users->id)
->update(['status ' => 2, 'canceled_at' => date("Y-m-d H:i:s")]);
}
}

Как создать задание cron для вызова этой функции, реализовав приведенный выше учебник?

0

Решение

Для такого рода работы вы должны использовать Планирование задач Laravel. Это дает возможность выполнять скрипт каждый час (или любой другой интервал, который вы выберете).

$schedule->call(function () {
// Your code
})->hourly();

Однако вы должны иметь возможность добавить задание cron на сервер, где размещен ваш сайт.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]