我正在尝试学习ActiveJob,我创建了一个简单的工作来完成整个过程。我几乎坚持第1步。我在app / jobs中有一个my_job.rb文件。该文件包含以下代码:
class MyJob < ActiveJob::Base
queue_as :default
def perform(obj)
puts obj
end
end
如果我进入我的控制台并输入MyJob,它的行为就像课程不存在......我错过了什么?
:001&gt;我的工作 NameError:未初始化的常量MyJob
答案 0 :(得分:10)
确保作业的文件名以&#34; _job.rb&#34;结尾。
例如:名为CheckDropboxAvailableSpaceJob
的作业的文件名应为check_dropbox_available_space_job.rb
,而不是check_dropbox_available_space.rb
。
如果文件名没有&#34; _job&#34; Rails就不会认出它是一项工作。最后。
答案 1 :(得分:0)
我认为这有点随机解决了...我可能重新启动了我的服务器或其他东西。据我所知,每次编辑作业时,都必须重新启动服务器才能获取更改。
答案 2 :(得分:0)
如果您正在使用它,我也必须重新启动sidekiq。