Laravel Heroku 上的队列工作者
Laravel Queue worker on Heroku
我 运行正在 Laravel 5 使用 Heroku。我正在为后台任务使用 Laravel 队列。 is/are 监听队列和 运行 工作的最可靠方法是什么?
我发现 运行 作为守护进程的 Queue Worker Laravel docs works well when used with supervisord supervisor docs 它将监视进程并在它因任何原因失败时重新启动它。
Laravel Forge 开箱即用地支持这一点,并为您提供一个 GUI 来设置守护进程和主管任务,如果您愿意的话
更新:弃用通知
php artisan queue:work -h
--daemon Run the worker in daemon mode (Deprecated)
运行 queue:work
自动产生一个守护进程。不再需要该标志。
对我来说,它使用 Redis 作为队列驱动程序并在 web
进程之外设置一个队列 worker
进程。
我的 Procfile 看起来像这样:
web: vendor/bin/heroku-php-apache2 public/
worker: php artisan queue:work redis --sleep=3 --tries=3 --daemon
我真的不知道这是不是应该走的路,但目前它是可行的。
编辑:
请注意,您在这里启动了另一个 dyno,因此如果您不使用 Heroku 上的免费套餐,现在价格是双倍。
如果您在 Heroku 上使用免费 计划,很容易获得工作进程运行 来处理您排队的项目
确保您同时拥有 worker 和 web dynos 运行
heroku ps:scale
如果不是 运行
,则启动工人测功机
heroku ps:scale worker=1
Proc 文件如下所示:
worker: php artisan queue:restart && php artisan queue:work --tries=3
查看来自工作人员的消息
heroku logs --ps worker
像这样在 heroku 中设置配置变量 (Laravel 5.6):
QUEUE_DRIVER=database
或者像这样在 heroku 中设置配置变量 (Laravel 5.7):
QUEUE_CONNECTION=database
如果不是 运行
,则启动 worker dyno
heroku ps:scale worker=1
Procfile 如下所示: 注意:在 queue:work
之后指定要使用的驱动程序
web: vendor/bin/heroku-php-apache2 public/
worker: php artisan queue:restart && php artisan queue:work database --tries=3
查看来自工作人员的消息
heroku logs --ps worker
跟踪来自工作人员的消息
heroku logs --tail --ps worker
我 运行正在 Laravel 5 使用 Heroku。我正在为后台任务使用 Laravel 队列。 is/are 监听队列和 运行 工作的最可靠方法是什么?
我发现 运行 作为守护进程的 Queue Worker Laravel docs works well when used with supervisord supervisor docs 它将监视进程并在它因任何原因失败时重新启动它。
Laravel Forge 开箱即用地支持这一点,并为您提供一个 GUI 来设置守护进程和主管任务,如果您愿意的话
更新:弃用通知
php artisan queue:work -h
--daemon Run the worker in daemon mode (Deprecated)
运行 queue:work
自动产生一个守护进程。不再需要该标志。
对我来说,它使用 Redis 作为队列驱动程序并在 web
进程之外设置一个队列 worker
进程。
我的 Procfile 看起来像这样:
web: vendor/bin/heroku-php-apache2 public/
worker: php artisan queue:work redis --sleep=3 --tries=3 --daemon
我真的不知道这是不是应该走的路,但目前它是可行的。
编辑:
请注意,您在这里启动了另一个 dyno,因此如果您不使用 Heroku 上的免费套餐,现在价格是双倍。
如果您在 Heroku 上使用免费 计划,很容易获得工作进程运行 来处理您排队的项目
确保您同时拥有 worker 和 web dynos 运行
heroku ps:scale
如果不是 运行
,则启动工人测功机heroku ps:scale worker=1
Proc 文件如下所示:
worker: php artisan queue:restart && php artisan queue:work --tries=3
查看来自工作人员的消息
heroku logs --ps worker
像这样在 heroku 中设置配置变量 (Laravel 5.6):
QUEUE_DRIVER=database
或者像这样在 heroku 中设置配置变量 (Laravel 5.7):
QUEUE_CONNECTION=database
如果不是 运行
,则启动 worker dynoheroku ps:scale worker=1
Procfile 如下所示: 注意:在 queue:work
之后指定要使用的驱动程序web: vendor/bin/heroku-php-apache2 public/
worker: php artisan queue:restart && php artisan queue:work database --tries=3
查看来自工作人员的消息
heroku logs --ps worker
跟踪来自工作人员的消息
heroku logs --tail --ps worker