Ruby on Rails - 每当Gem + Cron没有运行时

时间:2018-04-13 14:37:02

标签: ruby-on-rails ruby cron rubygems whenever

TL; DR:我的每当宝石计划任务不会自动运行但会手动运行。

我在本周早些时候发布了这个,但没有回复,我正在尝试将Whenever gem实现到我的RoR 5应用程序中。一年一次,我希望它在我的“用户”模型中运行一个方法,但出于测试目的,我每分钟都进行一次,如下所示:

Schedule.rb:

set :output, "/home/ubuntu/workspace/log/cron.log"
set :environment, 'development'
every 1.minute do
    runner "User.(methodhere)"
end

User.rb:

def self.(methodhere)
  User.all.each do |user|
    user.update(remaining_days: user.total_days)
  end
end

在多个地方,我读过有时cronjobs在开发模式下无法正常运行,所以我跳过了所有的环节,让我的应用程序进入生产模式,这没有帮助。

然后我发现您可以在命令行中手动运行这些作业,然后我尝试使用找到的命令执行:

whenever --update-cron

然后

crontab -l

显示

# Begin Whenever generated tasks for: 
* * * * * /bin/bash -l -c 'cd /home/ubuntu/workspace && bundle exec 
bin/rails runner -e development '\''User.new.(methodhere)'\'' >> 
/home/ubuntu/workspace/log/cron.log 2>&1'

手动运行:

/bin/bash -l -c 'cd /home/ubuntu/workspace && bundle exec 
bin/rails runner -e development '\''User.(methodhere)'\'' >> 
/home/ubuntu/workspace/log/cron.log 2>&1'

使其工作,并执行(methodhere)。只要不让它以设定的间隔自动运行。

我发现的另一件事是尝试重新启动cron,通过cron restart,但我收到了:

cron: can't open or create /var/run/crond.pid: Permission denied

我不确定这与我正在使用的IDE有什么关系,Cloud 9。

许多谷歌搜索都没有给我留下任何东西。

注意:我是RoR的新开发者,因此非常感谢任何有关此事的指导,谢谢!

0 个答案:

没有答案