24个版本 (6个重大更新)
使用旧的Rust 2015
0.7.0 | 2017年3月8日 |
---|---|
0.6.2 | 2016年10月13日 |
0.5.2 | 2016年9月1日 |
0.4.3 | 2016年8月31日 |
0.1.2 | 2016年8月27日 |
#1025 in 异步
66 每月下载量
1MB
913 代码行
Sidekiq-rs
Rust中的Sidekiq兼容服务器,当查看Sidekiq仪表板时,其行为与纯Sidekiq完全相同。
基本思路是,由于Ruby速度慢,我们使用原生代码编写工作处理器。因此,我们使用Ruby编写工作定义,使用Rust编写实现,并在Ruby中入队工作,在Rust中完成工作。
快照
用法
- 实现自己的
JobHandler
- 实例化sidekiq-rs服务器并插入您自己的工作处理器
- 在Ruby中设置与您的处理器同名的虚拟工作
- 运行sidekiq-rs服务器并从Ruby提交工作
您可以从 examples/main.rs
中了解如何构建sidekiq-rs服务器,并参考 ruby
中的代码来了解在Ruby中编写虚拟任务。
高级用法
您绝对可以在工作处理器中嵌入Ruby VM,当工作不是原生工作时代码时,运行Ruby代码,因此它很快就会成为一个带有原生代码支持的完整Sidekiq服务器。
终止sidekiq-rs
sidekiq-rs包含信号处理实现,目前它识别两种类型的信号
- SIGINT,用于强制退出服务器。服务器将终止所有工作者并按特定时间退出。默认时间为10秒。
- SIGUSR1,用于优雅地退出服务器。服务器将通知并等待工作者退出。
如果接收到任何信号,服务器将不再接受任何工作。
待办事项
- Sidekiq仪表板功能。
- 退出信号处理。
- 支持工作对象中的任意字段。
- 中间件支持。
- 通过中间件支持工作重试。
- 文档。
- 通过中间件提供独特的职位支持。
- Ruby代码处理器
- 正则表达式处理器匹配。
依赖关系
~13MB
~284K SLoC