Delayed_jobs 保存已完成的作业

2024-01-12

是否有一个参数可以传递给delayed_job,以防止它从delayed_jobs 表中删除已完成的作业?

有点像destroy_failed_jobs但对于已完成的工作

有任何想法吗?


扩展@jefflunt的答案。

我添加了一个迁移来创建一个表来包含已完成的作业

class CreateCompletedJobs < ActiveRecord::Migration
  def change
    create_table :completed_jobs do |t|
      t.integer  "priority", :default => 0
      t.integer  "attempts", :default => 0
      t.text     "handler", :limit => 2147483647
      t.datetime "run_at"
      t.datetime "completed_at"
      t.string   "queue"
      t.timestamps
    end
  end
end

然后是一个模块

class CompletedJob < ActiveRecord::Base
end

最后将钩子添加到我要存储的作业中

  def success job
    save_completed_job job
  end

  private

  def save_completed_job job
    CompletedJob.create({
      priority: job.priority,
      attempts: job.attempts,
      handler: job.handler,
      run_at: job.run_at,
      completed_at: DateTime.now,
      queue: job.queue
    })
  end

由于我有不止一项工作,因此我将成功方法挂钩放置在一个模块中,并将其包含在我想要存储的所有工作中。 (注意:有些不值得存储)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delayed_jobs 保存已完成的作业 的相关文章

随机推荐

  • NSMutableUrlRequest 吃加号

    我创建 NSMutableUrlRequest 用于将数据发送到服务器 向其中添加所有必需的字段 然后添加用于发送的字符串 如下所示 theRequest setHTTPBody postString dataUsingEncoding N
  • MongoDB 更改流中的resumeAfter 和startAtOperationTime 之间的区别

    在版本 4 中 MongoDB 更改流可以使用两个不同的参数来指定恢复更改流的位置 resumeAfter 一些内部令牌 和startAtOperationTime 时间戳类型 是否可以完全替代resumeAfter with startA
  • MySql 查看性能 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如果您走上使用视图的道路 如何才能确保良好的性能 或者最好不要首先使用视图 而只是将等效项合并到您的 select 语句中 这取决于
  • UITableViewCelldrawInRect iOS7

    您好 我正在尝试使用以下代码在 iOS 7 中的 UITableViewCell 中绘制字符串 void drawRect CGRect rect super drawRect rect CGRect playerNameRect CGRe
  • 我可以严格评估 Java 中存储为字符串的布尔表达式吗?

    我希望能够计算存储为字符串的布尔表达式 如下所示 hello goodbye 100 lt 101 我知道已经有很多这样的问题了 但我问这个问题是因为我已经尝试过这个问题最常见的答案 豆壳 http www beanshell org 并且
  • 如何在添加 endIgnoringInteractionEvents 之前匹配 beginIgnoringInteractionEvents

    我正在使用这两个功能 UIApplication sharedApplication beginIgnoringInteractionEvents and UIApplication sharedApplication endIgnorin
  • BigQuery 连接三个表

    我正在尝试连接 BigQuery 中的三个表 表 1 有一个事件的记录 即每一行是一条记录 表 2 有第二个事件的记录 表 3 有类别名称 我想要生成一个最终表 其中包含按类别和设备平台划分的表 1 和表 2 的计数 但是 每次我运行此命令
  • 将烧瓶 send_file (ajax 响应)中的图像显示到图像标记中

    如何显示来自烧瓶 send file ajax 响应的图像 HTML 文件
  • sqlite 列中的条件值

    我的 sqlite 表中有两个整数列 a and b 我需要创建第三列 c 其中应该包含Y if a b mod 2 1 or N如果前面的条件不满足 我不确定如何在查询中使用条件值定义这样的列 您可以在查询中轻松执行此操作 select
  • 如何在 gdb 中 fork() ed 的不同进程之间切换?

    我正在调试这样一个多进程应用程序 我怎样才能在fork 编辑流程 您可以让子进程进入睡眠状态 然后将一个新的 GDB 实例附加到它 这GDB用户手册 http sourceware org gdb current onlinedocs gd
  • 在 SSRS 查询字符串中传递多值参数的值

    我有两个使用 SSRS 2005 构建的报告 第一个报告设置为在单击特定字段时导航到第二个报告 我在文本框的 跳转到 URL 属性中使用类似于以下内容的表达式 javascript void window open http server
  • 如何下载需要用户名和密码的网页?

    例如 我想在插入用户名和密码后下载此页面 http forum ubuntu it org 我尝试过 wget 但不起作用 有 python 的解决方案吗 您可以使用这些用户名和密码进行测试 username johnconnor pass
  • GetView 与。自定义 CursorAdapter 中的 BindView?

    所以我正在看这个视频http www youtube com watch v N6YdwzAvwOA http www youtube com watch v N6YdwzAvwOARomain Guy 正在展示如何使用getView 方法
  • 创建从 C 到 C# 的混合模式 C++ 桥接器?

    我希望有人能帮助我解决这个问题 我主要是一名 C 开发人员 所以我的 C和C 技能很差 我有一个本机 C dll 它是一个插件 更大的应用 我在Linux上为Windows交叉编译这个dll 使用海湾合作委员会 在本机 dll 中 当我创建
  • 资产文件夹中的 Pdf 文件无法在第三方应用程序中打开

    你好 我是 android 新手 我有一些 PDF 文件存在于该路径中asset pdf example pdf 当我尝试使用此代码创建 PDF 文件时 Intent intent new Intent Intent ACTION VIEW
  • 如何动态构建 Perl 正则表达式?

    我有一个 Perl 脚本 它使用 File Next files 遍历目录层次结构 它只会返回以 avi flv mp3 mp4 和 wmv 结尾的脚本文件 它还会跳过以下子目录 svn 和任何以 frames 结尾的子目录 这是在file
  • 带 PyGTK 崩溃的多线程 Gstreamer (xcb_xlib_threads_sequence_lost)

    我知道不应该从其他线程更新 UIgtk 或面临后果 但我不确定在使用时如何避免这种情况gstreamer 我的应用程序在视频流初始化期间有时会崩溃 并出现以下投诉 xcb Unknown sequence number while proc
  • 处理对象字段验证的最佳方法 => Either / Try (scala 2.10) / ValidationNEL (scalaz)

    让我们假设一个使用构建器模式构造的对象 这个构建器模式将包含一个build方法侧重于字段验证 然后转换为目标类型 该验证可以使用以下方式实现 Either FailureObject TargetObject type Try Target
  • CSS 冲突样式表

    我有两个样式表 它们在几个方面相互冲突 因为我使用 5 个 6 个 有时甚至 9 个或 10 个完整的插件 每个插件都有三四个样式表 以及我自己的样式表 所以到处都会出现冲突 解决这个问题的最佳方法是什么 是进入并修改所有插件的选择器的唯一
  • Delayed_jobs 保存已完成的作业

    是否有一个参数可以传递给delayed job 以防止它从delayed jobs 表中删除已完成的作业 有点像destroy failed jobs但对于已完成的工作 有任何想法吗 扩展 jefflunt的答案 我添加了一个迁移来创建一个