sidekiqスケジューラを使用して毎分メソッドを実行しようとしています。しかし、私がcronジョブを実行しようとすると、私のデータベースにアクセスすることはできません。Rails 5:RedisでSidekiqスケジューラを使用しているときにデータベースにアクセスできない
私はこのようなcronジョブを実行しようとするとこれは私が
uninitialized constant ApplicationController
/home/raghav/workspace/apps/Shotgun/app/controllers/products_controller.rb:3:in `<top (required)>'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
/var/lib/gems/2.3.0/gems/sidekiq-5.0.0/lib/sidekiq/cli.rb:262:in `boot_system'
/var/lib/gems/2.3.0/gems/sidekiq-5.0.0/lib/sidekiq/cli.rb:54:in `run'
/var/lib/gems/2.3.0/gems/sidekiq-5.0.0/bin/sidekiq:12:in `<top (required)>'
/usr/local/bin/sidekiq:23:in `load'
/usr/local/bin/sidekiq:23:in `<main>'
を言っ誤差があるため、このエラーになってしまう、
sidekiq -r ./app/controllers/products_controller.rb
私のコントローラのコード
#product_controller.rb
require 'sidekiq-scheduler'
class ProductsController < ApplicationController
include ApplicationHelper
include Sidekiq::Worker
def task
Product.each do |product|
product.price.push(get_price_from_link(product.flipkart_link))
product.time.push(Time.now)
product.save!
end
end
private
def product_params
params.require(:product).permit(:flipkart_link, :flipkart_id, :name, :category, :image_url, :max_price, :price, :available, :target_price, :user_id)
end
end
#sidekiq.yml
:schedule:
cron_task:
cron: '0 * * * * *' # Runs once per minute
class: ProductsController
ですRedisサーバーの?もしそうなら、私は既存のモデルとデータベースにどのようにアクセスできますか?
を実行する-rオプションは必要ありません最後にエラーが発生しました ActionDispatch :: Routing :: RouteSet:Class –
@raghav_vcのための未定義のメソッド 'relative_url_root = 'このエラーとコード例で新しい質問を開始し、この質問に印を付けると便利です閉鎖または解決される。 – DiegoSalazar