我一直使用 Linux Crontab 来调用我的 cronjobs。大多数时候我只有 5 到 10 个 cronjobs,这是相当容易管理的,特别是在 UI 方面。我也多次使用过 cPanel cronjobs 界面,它基本上是 Linux Crontab 的掩码。
我现在面临的项目大约有 20 个 cronjobs(并且可以增长),必须在一天中的不同时间执行。我通过 cPanel 管理所有这些 cronjobs。事情可能会变得有点混乱,特别是因为我不允许上下移动已经创建的 cronjobs。
我想知道,与 Crontab 相比,使用 Laravel Scheduler 处理所有 cronjobs 的性能有多糟糕?
据我了解:
在 Laravel Scheduler 中,你将只有一个 Cron
php artisan schedule:run
。
Laravel 的优点是你可以通过代码设置所有的日程安排,而不需要访问服务器来设置 cron 或访问面板(CPanel)。
检查是否存在某些日程安排的过程并不繁重。所以我在使用 Laravel Scheduler 时没有发现任何问题。 20 个工作岗位的数量非常少,值得担心。
但是,在 Laravel Scheduler 中,默认情况下,同时安排的多个任务将根据您在 Schedule 方法中定义的顺序依次执行。如果您有长时间运行的任务,这可能会导致后续任务的启动时间比预期晚得多。如果您想在后台运行任务以便它们同时运行,您可以使用
runInBackground
方法。