问题描述
我在任何时候都使用 Rails+Sidekiq。 app 和 sidekiq 都是通过 docker-compose 运行的独立 docker 容器。
services:
app:
build:
dockerfile: Dockerfile
...
sidekiq:
build:
...
这两种服务(应用程序和 sidekiq)都有一个文件夹应用程序。我的问题是 schedule.rb 中的所有任务都运行两次(一次用于应用容器,另一次用于 sidekiq 容器)
有没有办法检查是否是sidekiq容器不启动计划作业?
(sidekiq 以命令开头:RAILS_ENV=production bundle exec sidekiq -L /my-app/log/sidekiq_production.log
)
解决方法
Cron 作业不会从 schedule.rb 文件神奇地创建。它们仅在您运行时创建
whenever --update-crontab
或类似的。从在 Sidekiq 容器中运行的脚本中删除此命令。