浩文 联系 关于本站 登录 注册

相关项目

commit信息:Add Rails Autoscale | 提交者:adamlogic | 提交时间:2020-05-15 | 版本:4f98fc8

许多第3方gems提供给Sidekiq额外的功能。请注意这些gems(1)可能不能与sidekiq企业版功能一起协调工作;(2)或许显著地破坏sidekiq的伸缩性和功能。

ActiveRecord

异步发送电子邮件和文件处理

  • Devise Async:后台发送Devise邮件。支持Resque, Sidekiq和Delayed::Job
  • Carrierwave Backgrounder: 使用Delayed Job, Resque, Sidekiq, Qu, Queue Classic 或者 Girl Friday把CarrierWave的图片处理和存储转移到后台程序
  • Ryespy:IMAP,FTP,Amazon S3,Google Cloud Storage,Google Drive,Rackspace Cloud Files侦听器。
  • SidekiqSendMail: 渲染邮件,然后将其序列化,以供Sidekiq分发。

Benchmark

  • Sidekiq Benchmark:往Sidekiq workers里添加基准方法,维持指标,并且向你的WebUI中添加tab,以便你能浏览它们。

批状态

Bulk

Capistrano & Deployment

执行顺序

  • Gush:Gush是构建在Sidekiq之上的并行工作流运行程序。 为运行复杂的程序而创建,每个作业具有多个依赖项。参考例子
  • Batsir:Batsir是一个基于阶段过滤的队列执行平台。它基于管道和过滤器模式,并且可以创建多个管道和过滤器(称为‘阶段’),可以使用‘回归接收者’异步调用这些管道和过滤器。接收者会自动启动,并将有效负载发送到过滤器链,之后,转换后的消息将由被称为‘出站通知’的程序来处理。只要配置了合适的入站接收器,通知程序将会把消息异步发送到另一个阶段。
  • Sidekiq Superworker: Chain together Sidekiq workers in parallel, serial, and batch configurations using an expressive DSL.
  • Sidekiq::Promise[存档]将单个worker转换为异步promises,那样可以使用promise流来进行协调。
  • sidekiq-grouping:使你可以对相似的任务进行分组,以将它们作为一个任务运行。 用于减少相似的计数器更新查询的数量,将单独的后台索引查询分组为批量等等。
  • sidekiq-merger:合并执行时间之前发生的任务。 特别适合批量通知。
  • sidekiq_workflows:在Sidekiq ** Pro** 上添加工作流程API。 与其它gems不同,该gem是专门为Sidekiq Pro的批处理而创建的。

Heroku

Heroku高可用

  • Sidekiq Multi-Redis Client:让你可以指定两个Redis位置,并且使客户端代码可以 1) 在两个redis实例之间交替发送作业, 2) 拥有自动故障转移功能,以便在一个实例发生故障时发送所有作业到可用的实例。

###日志
* sidekiq-gelf:记录作业日志到GELF-supported 日志服务器(例如Graylog2)的中间件。

Mongoid

监视

  • Sidekiq Monitor:Sidekiq高级监视工具,它让你可以使用许多属性来过滤、检索、和排序作业,查看错误回溯、设置作业完工元数据、以及更多其它功能。
  • Sidekiq Spy: console里的Sidekiq监视者。有点像Sidekiq::Web,但是没有网页。
  • Sidekiq Monitor Stats:使用实用的指标来给监视脚本添加json端点。这是一些sensu脚本,这些脚本使用这些api、在Sidekiq出问题时发出警告、以及追踪有用的指标。
  • Attentive Sidekiq: 一个监视/记录Sidekiq丢失作业(一个启动过但没有完成并且从redis里消失的作业)的扩展。
  • Sidekiq InfluxDB: 一个Sidekiq服务中间件,用来把执行过的作业指标推送给InfluxDB数据库。
  • Sidekiq Prometheus exporter:一个Sidekiq扩展,用来展示被废弃的Prometheus格式的统计信息。
  • general ruby Prometheus exporter:一个通用ruby导出工具,使用Sidekiq integration来导出Prometheus指标。
  • sidekiq_queue_metrics: 监视各个sidekiq队列指标以及每个队列中的故障。
  • sidekiq-job_alert: 如果有太多等待的作业或是死亡的作业就给Slack发送警告。

优先级

队列控制

  • Sidekiq Custom Queue:一个Sidekiq插件,使workers可以基于排队的message来定义定制化的/动态的队列。
  • Sidekiq Canary:来做canary部署的Sidekiq插件

队列限制

  • Sidekiq Limit Fetch:限制可同时运行的特定队列workers的数量。可以暂停一些队列并且可以动态调整队列的分布。也可以跟踪每个队列活跃的worker数量。支持全局模式(多个sidekiq进程)。它是一个附加阻塞队列模式。
  • Sidekiq Throttler:Sidekiq::Throttler是Sidekiq的中间件,它使每个worker可以限制作业执行速度。
  • sidekiq-rate-limiter:Redis backed, 限制每个worker的作业处理速度。
  • Sidekiq::Throttled:并发和阈值控制。
  • Sidekiq Worker Limiter:以极其简单的方式来限制 特定workers的并发。

循环作业

死亡作业

Ruby

  • Rubykiq: Sidekiq agnostic enqueuing using Redis.

Non-Ruby

  • Coffeekiq:基本的node.js库,可将作业入队到Sidekiq。
  • sidekiq-job-php:一个PHP库,给sidekiq‘入队/计划’作业。
  • rust-sidekiq: 一个Rust库,给sidekiq‘入队/计划’作业。

任务状态

  • Sidekiq-Status:给Sidekiq带来Resque-Status-like的功能,使你可以追踪作业状态。
  • sidekiq_status: 为Sidekiq重新编写resque_status。

唯一作业

Kubernetes

Misc

  • Sidekiq Remove Scheduled:轻松移除计划任务
  • sidekiq-retries: 一个更灵活的重试处理中间件。
  • sidekiq-enqueuer:一个Sidekiq Web扩展,在Web UI中使用定制负载参数来‘排队/计划’作业。同时支持Sidekiq::Worker和ActiveJob。
  • sidekiq-worker-killer: 内存泄漏在Ruby中是很难处理的,同时我们经常自己发现内存消耗的增长。代替花费巨大的精力来修复它们,为什么不在程序内存变的太大时杀死它们呢?

开发你自己的插件!