gpt4 book ai didi

ruby-on-rails - rails 5 : Cron jobs using Whenever not running

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:59 26 4
gpt4 key购买 nike

我正在尝试使用 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

最佳答案

在您的 schedule.rb 文件中,您的环境设置为开发环境,在 crontab -l 命令的响应中,环境设置为生产环境,你可以这样设置环境,

set :environment, "development"
set :output, {:error => "log/cron_error_log.log", :standard => "log/cron_log.log"}

every 1.minute do
rake "check_price:check_now"
end

关于ruby-on-rails - rails 5 : Cron jobs using Whenever not running,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44351322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com