所以我使用Rails,我有一些Sidekiq工作人员,但是启用了none。我使用的是sidekiq-cron gem,它要求您将文件放入app/workers/中,在config/sidekiq_schedule.yml中配置侧翼调度程序,并在config/initializers/sidekiq.rb中添加几行代码。但是,我已经注释了sidekiq_schedule.yml中的所有内容,也注释了sidekiq.rb中的以下行
# Sidekiq scheduler.
# schedule_file = 'config/sidekiq_schedule.yml'
# if File.exists?(schedule_file) && Sidekiq.server?
# Sidekiq::Cron::Job.load_from_hash! YAML.load_file(schedule_file)
# end但是,如果我启动Sidekiq,每分钟(这是旧的时间表),我会在提示符中看到这一点:
2018-01-19T02:54:04.156Z 22197 TID-ovsidcme8 ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper JID-8609429b89db2a91793509ea INFO: start
2018-01-19T02:54:04.164Z 22197 TID-ovsidcme8 ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper JID-8609429b89db2a91793509ea INFO: fail: 0.008 sec它失败了,因为它试图启动代码--这是一个不应该启动的作业。
我已经到了rails控制台提示符(rails -c)并试图找到这个工作,但是里面什么都没有:
irb(main):001:0> Sidekiq::Cron::Job.all
=> []所以我不太清楚它为什么要不断地尝试启动一份工作。如果我在我的应用程序上访问rails接口,我看不到队列中的任何内容,没有任何处理、繁忙、重试、排队,什么都没有。
如有任何建议,将不胜感激。就像最后一个小时一样,我一直在试图找出这件事,但没有成功。我甚至从“工人”目录中删除了所有的员工,但是它仍然试图启动其中的一个。
发布于 2018-01-19 07:42:37
因为您已经加载了作业,所以我认为这些作业配置仍然在REDIS中。通过使用redis-cli打开一个新的终端选项卡来检查这个假设
KEYS '*cron*'如果红宝石上有这些钥匙,清除它们会解决你的问题。
发布于 2018-01-19 07:52:12
因为您在标题中提到了cron作业,但没有提到问题,所以我假设有一个cron作业运行后台sidekiq任务。
尝试在终端中运行crontab - l以查看所有cron作业。如果你看到"* * *“之类的东西,那就意味着有一个任务在每分钟运行。
然后,使用crontab - r清除cron选项卡并删除所有计划的任务。
https://stackoverflow.com/questions/48333488
复制相似问题