首页 > 解决方案 > 如何在 Laravel 中的另一个命令之后运行命令

问题描述

我有很多 Command 类,它们在我的 Laravel 项目中在后台运行。我有一个场景,我想运行一个又一个。

        $schedule->command('mycommand:first')->cron("*/40 * * * *")->withoutOverlapping();
        $schedule->command('mycommand:two')->cron("*/40 * * * *")->withoutOverlapping();

他们每 40 分钟运行一次。但我想先在命令后 10 分钟运行命令二。我怎样才能做到这一点?

标签: laravel

解决方案


如果您只想在第一个命令后 10 分钟启动命令,则必须正确设置 cron 命令。因此,对于您的示例,它将是:

    $schedule->command('mycommand:first')->cron("*/40 * * * *")->withoutOverlapping();
    $schedule->command('mycommand:two')->cron("*/50 * * * *")->withoutOverlapping();

如果您想了解有关这些 cron 设置的更多信息,可以尝试类似crontab.guru

如果您想在完成mycommand:two后运行 10 分钟mycommand:first,您可能需要编辑以在命令末尾mycommand:first设置一些超时和执行。mycommand:second


推荐阅读