高效地重新安排 ActiveJob (resque/sidekiq)

2024-05-19

我正在玩Rails 4.2应用程序使用ActiveJob受支持resque/sidekiq用于电子邮件安排。当用户创建时事通讯活动时,会创建一个新作业并安排在特定日期。这一切都很好,但是当用户更改交货日期时会发生什么。

在这种情况下,每个作业都可以检查是否应该交付,因此无效的作业将被忽略,并且仅执行最后一个作业。这可以工作,但如果用户进行 1k 次编辑,会将 1k-1 个无效作业推送到队列中 - 不好。我认为现有的工作应该更新或用新的工作取代。据我所知,通过搜索Redis排队等候job_id是慢的。

在 Rails 中重新安排 ActiveJobs 的正确方法是什么(使用 resque/sidekiq)?


没有,工作并不意味着要重新安排。你已经回答了你自己的问题:

在这种情况下,每个作业都可以检查是否应该交付,因此无效的作业将被忽略,并且仅执行最后一个作业。

另一种方法是重新设计发送营销活动的方式:将交付日期存储在数据库中,并让 cron 每分钟检查一次是否需要交付的营销活动now然后立即创建 Sidekiq 作业。

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

高效地重新安排 ActiveJob (resque/sidekiq) 的相关文章

随机推荐

  • 尝试抓住最后的问题

    在 Try Catch Final 块中 无论发生什么情况 finally 块总是执行 还是仅当 catch 块不返回错误时才执行 我的印象是 只有当 catch 块没有错误地通过时 finally 块才会执行 如果 catch 块因错误而
  • 有谁知道变量必须在函数顶部定义的原因

    I have a question does anyone know why the variables have to be defined initialized at the beginning of a function Why c
  • Erlang 中的接受器池和负载平衡?

    From http www erlang org doc man gen tcp html accept 1 http www erlang org doc man gen tcp html accept 1 值得注意的是 accept 调
  • 从bigquery中的json字符串中提取键和值,其中json文档中没有指定的键

    我在 bigquery 中有一个表 其中有对象 对于每个对象 我都有一些字符串化的 json 在 json 中 示例行如下所示 ObjectID 1984931229 indexed abstract IndexLength 123 Inv
  • 使用 Spring 进行 Swing GUI 开发

    是否有任何使用 Spring 最好是 v3 构建 Swing GUI 应用程序的不错的教程 这是可能的 但如果您想使用 GUI 构建器 则无法通过 spring 初始化任何 GUI 组合 所以你不能使用依赖注入之类的东西 Spring 管理
  • Weld - 异步事件观察者

    我正在使用 Weld 来观察事件 我认为有一种方法可以指定观察者是否异步 但我没有找到该注释或文档 观察者可以异步吗 如果可以 我需要做什么才能实现这一点 对此有一个公开请求 CDI 31 异步事件 https issues jboss o
  • Type.GetInterface 和嵌套类型

    我刚刚发现 Type GetInterface 和嵌套类型有一个非常奇怪的行为 以下示例代码将显示问题 我使用接口的 Type FullName 来检查给定类型是否派生自该接口 public interface IStandardInter
  • 在GCC中添加父目录的包含路径

    我想将父目录中的文件包含在我正在处理的项目中 所有的头文件都在父目录中 有没有办法在命令行上使用 I 来搜索父目录中的包含而不使用绝对路径 我知道我可以使用 makefile 解决这些问题 并且我可能最终会这样做 但我想知道是否有一个可以使
  • jQuery 变量在定义时声称它是未定义的

    我试图在同一页面上有两个自动填充文本框 一个用于手机型号 input1 一个用于固件 input2 当两者都填充时 我希望显示一个带有ID input1input2 的div 但是当在input1 中输入值时 它声称phone 的变量未定义
  • 更新另一个 Action 的工作流程文件的 GitHub Action

    我在同一个存储库中有两个 GitHub Actions 我正在尝试更新其中一个 但在尝试提交并推送更改时出现以下错误 remote rejected HEAD gt some branch refusing to allow a GitHu
  • 使用 Django 重定向和 HttpResponseRedirect 有什么区别?

    一般用哪个比较好 https docs djangoproject com en dev topics http shortcuts redirect https docs djangoproject com en dev topics h
  • 大多数列表共有的项目

    给定一个列表列表 假设有 5 个列表 以便有一个可以使用的实数 我可以相对轻松地找到所有 5 个列表所共有的项目 请参阅使用 IEnumerable Intersect 求多个列表的交集 https stackoverflow com qu
  • 如何检查设备是否“快”足够

    我找不到更好的措辞来回答我的问题 在我的应用程序中的某个时刻 我设置了一些非常密集的动画 事实是 在高端设备上 动画运行流畅且赏心悦目 另一方面 我测试的一款低端设备在制作动画时的性能非常糟糕 为了将用户体验放在第一位 我想在计算能力足够的
  • 自定义 HTTP 标头:命名约定

    我们的一些用户要求我们将与其帐户相关的数据包含在HTTP 标头我们向他们发送的请求 甚至是他们从我们的 API 获得的响应 添加自定义 HTTP 标头的一般约定是什么 naming format etc 另外 请随意发布您在网络上偶然发现的
  • d3.js 堆叠条形图 - 修改堆叠顺序逻辑

    我想创建一个堆积条形图 其中矩形的顺序由数据值确定 即最大到最小 最高到最短 最富有到最贫穷等 据我所知 在堆叠数据后 initial秩序似乎得到保留 这可以在我的代码片段中看到 硬编码数据让我们可以看到之前和之后发生的情况d3 stack
  • HTML 下拉菜单禁用 Javascript 中的选项

    Question 下面的代码是隐藏所选项目下拉列表中的选项 因此 当用户选择该选项时 它将隐藏所有下拉选择列表中的所选值 我现在有四个下拉选择 我想实现像当下拉选择被触发时它将启用当前选择的选项值 意味着用户能够在用户触发时选择回下拉选择中
  • 无法执行 Android 活动的方法

    我有以下按钮
  • Android 上的 SQLite 和 MongoDB 具有同步功能

    是否可以在 Android 上使用 SQLite 在服务器上使用像 MongoDB 这样的 NoSQL 数据库 并在两者之间进行 2 路数据复制 同步 或者最好在两端使用 SQL 或者在两端使用 NoSQL 但不要混合使用 有几种不同的方法
  • 将 HTML 'label' 标签与单选按钮一起使用

    是否label标签与单选按钮一起使用吗 如果是这样 你如何使用它 我有一个显示如下的表单 First Name text field Hair Color color drop down Description text area Salu
  • 高效地重新安排 ActiveJob (resque/sidekiq)

    我正在玩Rails 4 2应用程序使用ActiveJob受支持resque sidekiq用于电子邮件安排 当用户创建时事通讯活动时 会创建一个新作业并安排在特定日期 这一切都很好 但是当用户更改交货日期时会发生什么 在这种情况下 每个作业