在本地主机上运行时,我使用:
php artisan queue:listen database
侦听并充当队列。直到我要对我的laravel进行docker操作之前,这都可以正常工作。我已经完成了此操作,因此无法运行命令,以使容器具有队列侦听器。
我了解到我可以执行以下操作:
docker exec -t (containername) php artisan queue:listen
我想找到另一个执行此操作的方法,因为如果容器死亡并重新启动,则该命令将不会执行,并且我不能仅观察容器死亡的时间,以便可以手动执行。我想要一种自动方式。每个启动的容器必须自动运行此命令。我在Dockerfile中尝试过,但没有任何效果。
你能帮我吗?
答案 0 :(得分:2)
要在启动后执行命令,请添加您的Dockerfile RUN cd /my/project/root && php artisan queue:listen
此外,您可以使用vessel与Docker一起使用,它已经为Laravel预先配置,因此您可以简单地执行类似./vessel artisan <cmd>
答案 1 :(得分:1)
如果您需要一个以上的工作人员,则可以通过主管进行设置,如Laravel队列页面https://laravel.com/docs/5.7/queues#supervisor-configuration
中所述答案 2 :(得分:1)
创建一个新的服务,如下图所示。
这是我的library(dplyr)
mydf %>%
group_by(treatment1) %>%
mutate(y_avg = mean(y)) %>%
summarise_at(vars(y_avg, contains("doctor_id")), max)
# A tibble: 3 x 6
# treatment1 y_avg doctor_id_1 doctor_id_2 doctor_id_3 doctor_id_4
# <fct> <dbl> <int> <int> <int> <int>
#1 A -0.192 1 1 1 1
#2 B -0.0390 0 1 1 1
#3 C -0.165 0 1 1 1
文件,这也将有助于在 AWS Fargate 环境中运行队列
docker-composer.yml
答案 3 :(得分:0)
不确定这是正确的方法。但是我已经做了很长时间了,对我来说效果很好。
转到项目文件夹。
运行php artisan queue:listen
在运行此命令之前,请将当前用户添加到www-data
组中。