如何连续运行Laravel Scheduler Cron作业

时间:2018-02-23 09:35:25

标签: php laravel unix cron laravel-5.4

我在laravel中构建在线交易应用程序(限价订单簿)

在此应用程序用户位置购买订单或销售订单

并且根据订单的价格和数量来匹配。

对于订单匹配,我使用价格/时间优先算法

我设置了一个在运行订单匹配脚本的服务器上每分钟运行一次的cron作业,我使用laravel任务调度来执行cron作业

cron job script就像这样

fetch 1000 records in database
perform order matching on those records

假设在12:00:00 PM,数据库中有1000个待处理订单,而下午12:00:00运行cron作业,并在12 :: 00 :: 20PM完成

但是在12 :: 01 :: 00PM创建的订单必须等待40秒才能执行

所以如何设置将连续运行的cron

class orderMatch extends Command{
    public function handle(){
        $orders = \App\Order::where(['status' => 0])->limit(1000)->orderBy('id','ASC')->get();
        foreach ($orders as $order) {
             $this->processOrder($order);
        }
    }
}

并且在kernal.php中我有这段代码

$schedule->command('ordermatch:run')->everyMinute()->withoutOverlapping();

由于

0 个答案:

没有答案