我正在运行一个Rails应用程序。
应用程序/工人/样本/fetch_book_report_worker.rb
class Sample::FetchBookReportWorker
// body
end
Run Code Online (Sandbox Code Playgroud)
应用程序/工人/样本/fetch_student_report_worker.rb
class Sample::FetchStudentReportWorker
// body
end
Run Code Online (Sandbox Code Playgroud)
应用程序/工人/样品/fetch_teacher_report_worker.rb
class Sample::FetchTeacherReportWorker
// body
end
Run Code Online (Sandbox Code Playgroud)
应用程序/工人/样本/fetch_college_report_worker.rb
class Sample::FetchCollegeReportWorker
// body
end
Run Code Online (Sandbox Code Playgroud)
当我单独运行上述工人时,我没有看到问题。但我同时运行所有工人。我收到以下错误。
LoadError: Unable to autoload constant Sample::FetchStudentReportWorker, expected /home/ubuntu/my-app/app/workers/sample/fetch_student_report_worker.rb to define it
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
在我的开发环境中,我收到此错误:
WARN: LoadError: Unable to autoload constant Alerts::FailedReportWorker, expected /my-path/app/workers/alerts/failed_report_worker.rb to define it.
Run Code Online (Sandbox Code Playgroud)
我的 Schedule.yml 文件中有这些工作人员:
alert_sla_worker:
cron: "*/1 * * * *"
class: "Alerts::SlaWorker"
alert_failed_export_worker:
cron: "*/1 * * * *"
class: "Alerts::FailedExportWorker"
alert_failed_report_worker:
cron: "*/1 * * * *"
class: "Alerts::FailedReportWorker"
alert_failed_extractor_worker:
cron: "*/1 * * * *"
class: "Alerts::FailedExtractorWorker"
Run Code Online (Sandbox Code Playgroud)
我的文件夹结构如下所示:
workers
alerts(folder)
failed_export_worker.rb
failed_extractor_worker.rb
failed_report_worker.rb
sla_worker.rb
Run Code Online (Sandbox Code Playgroud)
和 failed_report_worker.rb :
# frozen_string_literal: true
module Alerts
class FailedReportWorker
include Sidekiq::Worker
sidekiq_options queue: :default, retry: 0
def perform
...
end …Run Code Online (Sandbox Code Playgroud)