我如何使用 Queue Worker 执行 cron 作业? (laravel 5.3)
How can I do cron job with Queue Worker? (laravel 5.3)
我在这里阅读:https://laravel.com/docs/5.3/queues#running-the-queue-worker
我想使用教程创建一个 cron 作业,但我不知道如何实现它
我的情况是这样的:
比如我有table订单。 Table 订单有这样的字段:
状态,int(10)
checkout_at,日期时间
canceled_at,日期时间
我只提了几个领域
注意:
状态 = 1 -> 已收到
状态 = 2 -> 已取消
状态 = 3 -> 等待付款
我想做这样的逻辑:
如果买家在 checkout_at 后 2 小时内没有付款,请将状态更改为 "canceled" 并插入值 "canceled_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作业来调用函数?
对于这种工作,您应该使用 Laravel Task Sheduling。这提供了每小时(或您选择的任何其他时间间隔)执行脚本的选项。
$schedule->call(function () {
// Your code
})->hourly();
但是,您需要能够在托管网站的服务器上添加 cron 作业。
我在这里阅读:https://laravel.com/docs/5.3/queues#running-the-queue-worker
我想使用教程创建一个 cron 作业,但我不知道如何实现它
我的情况是这样的:
比如我有table订单。 Table 订单有这样的字段:
状态,int(10)
checkout_at,日期时间
canceled_at,日期时间
我只提了几个领域
注意:
状态 = 1 -> 已收到
状态 = 2 -> 已取消
状态 = 3 -> 等待付款
我想做这样的逻辑:
如果买家在 checkout_at 后 2 小时内没有付款,请将状态更改为 "canceled" 并插入值 "canceled_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作业来调用函数?
对于这种工作,您应该使用 Laravel Task Sheduling。这提供了每小时(或您选择的任何其他时间间隔)执行脚本的选项。
$schedule->call(function () {
// Your code
})->hourly();
但是,您需要能够在托管网站的服务器上添加 cron 作业。