gpt4 book ai didi

ruby-on-rails - 在所有延迟的作业之前 Hook

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:20 24 4
gpt4 key购买 nike

是否可以在所有 delayed_job 任务之前运行一个方法?

基本上,我们试图确保每个运行 delayed_job 的服务器都有我们代码的最新实例,所以我们想运行一个方法来在每个作业运行之前检查它。

(我们已经有了“check”方法并在别处使用它。问题只是关于如何从delayed_job中调用它。)

最佳答案

现在有一种官方方法可以通过插件来做到这一点。这篇博文通过示例清楚地描述了如何执行此操作 http://www.salsify.com/blog/delayed-jobs-callbacks-and-hooks-in-rails (本文中描述的一些事件可能已过时。请参阅下面的基于最新 DJ 来源的更新列表)

本质上,您实现了一个初始化程序来设置 delayed_job 插件,如下所示:

# config/initializers/delayed_job_my_delayed_job_plugin.rb

module Delayed
module Plugins
class MyDelayedJobPlugin < Plugin
callbacks do |lifecycle|
# see below for list of lifecycle events
lifecycle.after(:invoke_job) do |job|
# do something here
end
end
end
end
end

Delayed::Worker.plugins << Delayed::Plugins::MyDelayedJobPlugin

您将有权访问以下生命周期事件和适用的参数:

  :enqueue    => [:job],
:execute => [:worker],
:loop => [:worker],
:perform => [:worker, :job],
:error => [:worker, :job],
:failure => [:worker, :job],
:invoke_job => [:job]

关于ruby-on-rails - 在所有延迟的作业之前 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com