我正在使用Delayed :: Job从rails应用程序发送短信。我在Gemfile中包含了如下的gem。
gem 'delayed_job', "~> 4.1.1"
我还添加了自定义延迟作业
class SendSmsJob < Struct.new(:person_id, :content)
include DelayedAirbrakeNotification
def perform
person = Person.find(person_id)
phone = person.phone_number
....
....
....
end
end
我正在从控制器触发这项工作,
Delayed::Job.enqueue(SendSmsJob.new(@person.id, "Test message"))
但是当我尝试在person_id
方法下使用content
和perform
的值时,我分别得到nil
和""
。
我对其他工作采用相同的方法,这些工作完美,
我不知道如果我在这里遗漏了什么。
任何建议都将受到赞赏。
答案 0 :(得分:1)
首先,您应该按照here所述安装DelayedJob作为ActiveJob的后端。 然后通过运行以下命令生成ActiveJob作业:
rails generate job NAME [options]
运行rails generate job --help
获取帮助或查看documentation page。
最后但并非最不重要的是,在perform
方法中,您应该定义所需的任何参数。
def perform(person_id)
...
end