【发布时间】:2017-11-05 04:29:10
【问题描述】:
我正在尝试使用Whenever gem 每小时运行一次任务。
#check_price.rake
namespace :check_price do
desc "TODO"
task check_now: :environment do
price_sync = PriceSyncLibrary.new
Product.all.each do |product|
product.price.push(price_sync.get_price_from_link(product.flipkart_link))
product.time.push(Time.now)
product.save!
end
end
end
这是我的 schedule.rb 文件
every 1.minute do
rake "check_price:check_now", environment: 'development'
end
当我跑步时
rake check_price:check_now
在终端中,我得到了我想要的结果,但是同一个 rake 任务并没有像 schedule.rb 文件中指定的那样每分钟运行一次。我错过了什么吗?
当我跑步时
crontab -l
在控制台中,我得到了这个结果。
# Begin Whenever generated tasks for: /home/raghav/workspace/apps/Shotgun/config/schedule.rb
* * * * * /bin/bash -l -c 'cd /home/raghav/workspace/apps/Shotgun && RAILS_ENV=production bundle exec rake check_price:check_now --silent'
# End Whenever generated tasks for: /home/raghav/workspace/apps/Shotgun/config/schedule.rb
# Begin Whenever generated tasks for: Shotgun
* * * * * /bin/bash -l -c 'cd /home/raghav/workspace/apps/Shotgun && RAILS_ENV=production bundle exec rake check_price:check_now --silent'
# End Whenever generated tasks for: Shotgun
【问题讨论】:
-
你能显示用户 crontab 文件中的内容吗?
-
请edit带有此信息的问题,这是不可读的。
-
尝试在没有静默标志的命令行中运行 crontab 中的命令。
标签: ruby-on-rails ruby cron whenever