获取延迟作业中已创建作业的 ID
Get Id of created Job in Delayed Jobs
我正在使用延迟作业在队列中添加一些电子邮件。我创建工作的方式如下:
EventNotifications.reminder("email", "name", id).deliver_later
其中 EventNotifications 是 class,reminder 是其中的方法。
这会在 delayed_jobs table 中创建一个作业,但我想获取创建的作业的 ID,因为我在 delayed_jobs table 中有一些自定义字段我要更新。
我目前在 运行 上面那行之后得到的是:
#<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
。
我正在使用延迟作业在队列中添加一些电子邮件。我创建工作的方式如下:
EventNotifications.reminder("email", "name", id).deliver_later
其中 EventNotifications 是 class,reminder 是其中的方法。
这会在 delayed_jobs table 中创建一个作业,但我想获取创建的作业的 ID,因为我在 delayed_jobs table 中有一些自定义字段我要更新。
我目前在 运行 上面那行之后得到的是:
#<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
。