首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cron作业不运行使用Sidekiq的'runner‘任务

Cron作业不运行使用Sidekiq的'runner‘任务
EN

Stack Overflow用户
提问于 2015-09-11 03:12:24
回答 1查看 352关注 0票数 0

我使用任何时候的gem生成了一个Cront作业

代码语言:javascript
复制
every 15.minutes do
    command "date >> ~/cron.txt"
    runner "Location.update_days"
end

通过在命令行中输入crontab -l,我得到:

代码语言:javascript
复制
0,15,30,45 * * * * /bin/bash -l -c 'date >> ~/cron.txt'

0,15,30,45 * * * * /bin/bash -l -c 'cd /opt/www/my_app && bin/rails runner -e production '\''Location.update_days'\'''

显然,command任务运行得很好,我每隔15分钟就会将date输出到cron.txt,但runner任务不会运行。

Location.update_days调用Sidekiq worker来执行任务,当从rails console运行时它可以工作,但当它被cron调用时就不起作用了。

代码语言:javascript
复制
def self.update_days
   new_day = self.new_day

   self.where( current_location: true,
            self.season => new_day[:timezone]
          ).find_each do |location|
            day = location.days.create new_day
            SidekiqWorker.perform_async day.id
          end
end

你知道可能是哪里出了问题吗?或者我该如何调试这个问题?

EN

回答 1

Stack Overflow用户

发布于 2015-09-11 03:48:34

我知道您说它可以从控制台运行,但是您有没有尝试运行cron作业运行的bash脚本来查看是否有明显的错误?甚至在加载Ruby类之前,cron作业就有可能失败。

代码语言:javascript
复制
/bin/bash -l -c 'cd /opt/www/my_app && bin/rails runner -e production '\''Location.update_days'\'''
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32509930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档