如何在delayed_job rails中获取处理程序的参数列表

Yes*_*sha 5 arguments handler delayed-job ruby-on-rails-4

我有我可以使用命令获得的所有计划作业的列表

延迟::工作.all

每个作业都有一个处理程序字段(字符串),其中包含一个“-”分隔的参数。我想找到这个字符串的参数之一。一种方法显然是拆分字符串并提取值,但如果传递的参数列表发生任何更改,则此方法将失败。

下面给出的是我的工作对象之一的处理程序字符串:

"--- !ruby/object:ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper\njob_data:\n job_class: ActionMailer::DeliveryJob\n job_id: 7ce42882-de24-439a-a52a-5681453f4213\n mailers\n参数:\n - 事件通知\n - 提醒_网络研讨会_事件_注册\n - 交付_现在\n - mail@gmail.com\n - yesha\n - 89\n 语言环境::en\n"

我想知道是否有任何方法,我可以在保存作业对象的同时向作业对象发送额外的参数,以便稍后使用,而不是在处理程序字符串中进行搜索。或者,如果不是这样,我可以获得处理程序的参数列表,而不是解析字符串并使用它。

请帮助!

S.S*_*cer 9

instance_objectDelayed::Job 实例有一个方法,它返回反序列化的处理程序

job = Delayed::Job.first

handler = job.payload_object
Run Code Online (Sandbox Code Playgroud)

您可以根据需要使用您的处理程序,例如 handler.method

  • 嗯,我想我的意思是“job.payload_object” (2认同)