• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

获取延迟作业中创建作业的ID

ruby-on-rails 来源:Yesha 4次浏览

我正在使用延迟作业在队列中添加一些电子邮件。我创建一个工作的方式如下:获取延迟作业中创建作业的ID

EventNotifications.reminder("email", "name", id).deliver_later 

其中EventNotifications是类,提醒是它里面的方法。

这会在delayed_jobs表中创建一个作业,但是我想要创建作业的Id,因为我想更新delayed_jobs表中的一些自定义字段。

运行上面的行之后我目前得到的是:

#<ActionMailer::DeliveryJob:0x00000005eb22d8 @arguments=["EventNotifications", "reminder", "deliver_now", "email", "name", 12], @job_id="6a549235-e8c1-407b-ac75-be8736559eaa", @queue_name="mailers"> 

这并不一定是创建工作的ID。我如何获得该ID?


===========解决方案如下:

您可以绕过ActiveJob并直接使用DelayedJob API。这有不利于你的工作系统的抽象。你可以这样做:

job = EventNotifications.delay.reminder("email", "name", id) 

在这一点上,你可以访问job.id


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)