【发布时间】:2014-01-28 21:52:53
【问题描述】:
所以我有一个具有多种类型工作人员的 Rails 应用程序。我决定尝试使用 Docker 运行 rails 应用程序,为每种类型的工作程序(Resque、DelayedJob、调度程序、不同的配置)使用单独的映像。问题是有队列的工作人员(DelayedJob + Resque)没有接工作(使用两者来排除排队系统本身)。我可以看到排队的工作,他们在那里,但工人从来没有从队列中取出任何东西。如果我从控制台运行一个工作人员,它工作得很好。
图片基于 Cedarish-https://github.com/progrium/cedarish
坐在 NGINX 后面的网络工作者似乎做得很好,尽管我注意到他们的一些问题有时会在一段时间后变得无响应,但不确定这是否相关。
您知道什么可能导致在 Docker 下运行并成功连接到 Redis + MySQL 的工作人员忽略作业队列而不拾取任何东西吗?
猜测这与我的 Docker 配置有关...
【问题讨论】:
-
工作进程真的在运行吗?
-
是的,他们肯定在运行。两个日志都没有显示错误,并且 Resque-Web 承认它们存在。
-
你能分享一下让 Resque 与 Docker 一起工作的知识吗?
-
@pak Resque 无法正常工作,您遇到了什么问题?没有什么特别的,因为 Resque 工作人员只是读取 Redis 队列。
-
@ScottFeinberg 我解决了我的问题:我没有正确使用 phusion 乘客的基础图像服务。
标签: ruby-on-rails ruby docker