Cron工作因一项超长工作而延迟

时间:2018-08-21 02:08:14

标签: php laravel cron

所以我每分钟都有一次cron作业。这些Cron作业均在30秒内完成。但是,我的上一个cron作业是随机的,并且仅在找到系统中的数据时才开始工作。有时会有很多数据,而cron作业通常需要大约10分钟才能完成,我非常满意。但是,一旦启动此cron作业并经过一分钟,其他cron作业就不会启动,直到完成cron作业为止。因此,我有大约15个以上的Cron作业等待一个Cron作业完成,然后又重新启动。

我使用了noOverlapping,它似乎不起作用?有解决方案吗? 这是我的工作清单:

    $schedule->command('sms:schedule')->everyMinute();
    $schedule->command('sms:sendbulk')->everyMinute();
    $schedule->command('sms:notifyevent')->everyMinute();
    $schedule->command('voice:sendbulk')->everyMinute();
    $schedule->command('email:sendbulk')->everyMinute();
    $schedule->command('email:schedule')->everyMinute();
    $schedule->command('voice:schedule')->everyMinute();
    $schedule->command('sms:sendrecurringsms')->everyMinute();
    $schedule->command('sms:sendrecurringvoice')->everyMinute();
    $schedule->command('email:sendrecurringemail')->everyMinute();
    $schedule->command('event:recurring')->everyMinute();
    $schedule->command('senderid:validation')->dailyAt('12:01');
    $schedule->command('invoice:recurring')->dailyAt('12:01');
    $schedule->command('reports:daily')->dailyAt('06:00');
    $schedule->command('checksms:status')->everyMinute();
    $schedule->command('checkroom:status')->everyMinute();
    $schedule->command('location:minute')->everyMinute();
    $schedule->command('location:checkcircle')->everyMinute();
    $schedule->command('recurring:setsmsname')->everyMinute();
    $schedule->command('recurring:setvoicename')->everyMinute();
    $schedule->command('site:schedulingevents')->everyMinute();
    $schedule->command('sms:contactnameset')->everyMinute();
    $schedule->command('daily:checklocation')->withoutOverlapping();

最后一个是区分时间的那个。但是,在这种情况下,我需要其他机器保持每分钟运行。

0 个答案:

没有答案