将 Delayed Job Docker 化

8
我们目前正在将我们的Ruby on Rails应用程序进行 Docker 化,其中还包括 Delayed Job。开发团队中存在一个问题,即是否以及如何将 Delayed Job 组件与应用程序分开 Docker 化。
这将允许延迟作业根据作业队列中的高流量需要启动新容器。此外,由于每次首次启动时 Delayed Job 实际上会启动 Rails 应用程序,因此我们认为以下好处将随之而来:
  1. Delayed Job 容器可能更快地启动
  2. 无论 Delayed Job 容器启动时间如何,应用程序代码都将启动

1
实际上,工作人员需要像应用程序容器一样拥有Rails堆栈,唯一的区别是它的命令将是延迟作业守护进程而不是Rails服务器。 - DVG
@DVG 把它运行在一个单独的容器中有什么好处吗?当然,每个容器只有一个进程的理念是额外的优点,但我们也可以不考虑实际应用程序状态而扩展延迟作业进程。 - user2990654
当然,它们仍然可以独立于应用程序进行扩展,但它仍然需要启动应用程序才能完成其工作。 - DVG
1个回答

2
我认识一个负责使用延迟作业的 Rails 应用程序的人。当将该应用程序 docker 化时,每个容器都有自己的容器。这两个容器使用相同的代码库,但一个运行前端,另一个运行作业。除了逻辑上的分离之外,docker 容器只应该有一个进程在其中运行。虽然可以将其拼凑在一起,但似乎不应该从一开始就打破 Docker 的基本原则。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接