ruby-on-rails - Sidekiq 在特定队列中查找与特定实例相关的作业
问题描述
我刚刚在我的 Rails 应用程序上将我的作业调度程序从更改delayed_jobs
为。sidekiq
在Delayed_jobs
中,一旦我们删除了模型的一个实例Order
,我们就删除了相关的作业,如下所示:
jobs = Delayed::Job.where("handler LIKE '%/Order/?%'", id).where(queue: queue)
jobs&.destroy_all
现在,由于Sidekiq
在我们的数据库上不起作用,我使用了 Sidekiq API 中的文档并尝试这样做:
rs = Sidekiq::RetrySet.new
ss = Sidekiq::ScheduledSet.new
ds = Sidekiq::DeadSet.new
[rs, ss, ds].each do |set|
set.scan("Order/#{id}").map(&:delete) if set.any?
end
这样做的问题是我没有在特定队列中搜索,因此与实例 Order/id 相关的任何作业都将被删除,我只想删除特定队列中的作业。
解决方案
推荐阅读
- java - Jackson XML :: 在没有打开的开始元素时尝试编写属性
- python-3.x - 从空格和未知空元素中清除 Python 字符串
- python - 无法在 python 以及 scala 中找到 spark-jobserver api 包
- python - 如何使用 FBprophet 设置每周和每月数据的季节性值
- python - 在 Windows 上安装 PyQt5-tools 时出现“Preparing metadata (project.toml) ... error”错误
- redhat-containers - Nodejs 的 Redhat Openshift 映像无法正常工作
- ios - 下载图像时无法获取 UIImage。在守卫之后调用completionHandler(.notcompleted) let img = UIImage
- jquery - 点击优惠券后返回的功能是什么?
- java - 如何在运行时从选择列表框中动态选择选项?Selenium_Java
- macos - 在支持 GPU 的 iMac M1 上安装 XGBoost