Rails 5.2 и Sidekiq: не могу найти рабочий класс - PullRequest
0 голосов
/ 03 октября 2018

У меня есть работник с именем release_monitor_worker.rb, сохраненный в app/workers/.Это выглядит так:

class ReleaseMonitorAddWorker
  include Sidekiq::Worker
  sidekiq_options retry: false

  require 'watir'
  require 'nokogiri'
  require 'open-uri'

  def parse_url(url)
    puts "Beginning navigation to #{url}"
    browser = Watir::Browser.new :chrome, headless: true
    browser.goto url
    puts "Succesfully navigated!"
    Nokogiri::HTML.parse(browser.html)
  end

  def perform
    doc = parse_url(URL)
    count = doc.xpath('/html/body/div[9]/div/div/div/div/div[2]/div[2]/div[1]/div/div[1]/h1/span')
    count.tr('()', '')
    binding.pry
  end
end

Затем я вызываю этого работника из моего NewReleasesController (с именем new_releases_controller.rb) примерно так:

class NewReleasesController < ApplicationController
  def index
    ReleaseMonitorAddWorker.perform_async
  end
end

Я запускаю Redis, затем Sidekiq, а затемзапустить рельсы с.Я получаю следующую ошибку при запуске этого метода контроллера: uninitialized constant NewReleasesController::ReleaseMonitorAddWorker

Что здесь происходит?

1 Ответ

0 голосов
/ 03 октября 2018

Несоответствие между именем вашего класса (ReleaseMonitorAddWorker) и именем файла (release_monitor_worker.rb).Переименуйте ваш файл в release_monitor_add_worker.rb или ваш класс в ReleaseMonitorWorker, и он будет работать.

...