我试图在how to Run Cron Jobs上关注Laravel文档, 我想添加这个
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
但我不知道如何将它添加到Heroku。
答案 0 :(得分:4)
我创建了这个每分钟运行一次的调度程序,它是您自己应用程序的一部分。
https://gist.github.com/robbydooo/65bf341ea0f4081150b945bfb1d38d3c
它会创建一个名为Scheduler的新Dyno类型,您可以从中启动。
确保在队列中运行作业,以避免此调度程序每分钟运行一次。
要在Laravel 5.4+中使用此调度程序,请将此文件添加到/app/Console/Commands/RunScheduler.php 在app / Console / Kernel.php中注册此文件
protected $commands = [
…
Commands\RunScheduler::class
…
]
将此行添加到Procfile:
scheduler: php -d memory_limit=512M artisan schedule:cron
答案 1 :(得分:1)
Heroku有一个cron调度程序插件,可用于计划任务。
您可以像这样安装:
$ heroku addons:create scheduler:standard
有关详细信息,请查看this article。
答案 2 :(得分:0)
您将无法按照文档中的指定配置Laravel Scheduler。您需要安装Heroku Scheduler附加软件并添加 php artisan schedule:run ,但这只会让您每隔10分钟就能完成预定的作业,这样做会阻止Laravel Scheduler频率选项可以正常工作。
我写了一篇关于如何在Heroku上使用Laravel Scheduler的指南,这是一个简单的解决方案,但它需要一些额外的编码: https://medium.com/@nicolasbistolfi/running-laravel-scheduled-jobs-on-heroku-3a7bd6fa2481
答案 3 :(得分:0)
Cron To Go 是一个附加组件,它允许您每分钟运行一次 Laravel 的任务调度程序(cron 中的 * * * * *
)。只需安装附加组件,添加以 * * * * *
作为日程安排和 php artisan schedule:run
作为命令的作业,高枕无忧!如果您的 Laravel 日志没有显示在调度程序中,则可以使用 here 中描述的日志路由快速修复。