MRQ分布式 worker 任务队列
MRQ(MR.Queue)是一个使用 Redis&gevent 的分布式 worker 任务队列。
MRQ 是一个独特的任务队列,它一方面旨在像 RQ 一样简单,另一方面要求有接近 Celery 的性能。MRQ最早在 Pricing Assistant 上被开发,它最初的功能设计是为了满足任务队列的各种任务需求(IO密集&CPU密集,很多小任务&几个大任务)。
特性
代码简单:MRQ 和 RQ 一样容易理解并且更容易扩展。
强大的用户面板:具有可视界面,可以控制一切,包括队列中的任务、当前任务、worker 的状态等等。
按任务区分的日志:在面板中单独获得每个任务的输出日志。
Gevent worker:IO 密集型任务可以并行在同一个 Unix 进程中执行,以实现最大吞吐量。
管理集成:CPU 密集型的任务可以通过单个命令行参数在多个 UNIX 进程之间拆分。
任务管理:可以利用代码或者用户面板重试、重新入队和取消任务等。
性能:批量作业排队,轻松作业分析。
容易配置:MRQ 的每个参数都可以通过命令行参数或者配置文件进行配置。
任务路由:和 Celery 一样,任务可以有默认的队列、过期时间和 ttl 值。
内置的调度器:可以按照时间间隔和时间点对任务进行调度。
策略:支持串行或者并行的处理队列,同时也支持一次性或者周期性的批量任务。
子队列:简单的命令行来生成多个子队列,从 worker 的角度使用自动发现的方式。
完备的测试体系:边界情况比如 worker 中断、Redis 失败等都在一个 docker 容器中测试。
线程跟踪:可以调试查看每个 CPU 敏感的任务在每个线程消耗的时间。
完备的内存泄露调试器:监视任务的内存泄露并且使用 objgraph 发现内存泄露。
评论
Celery异步任务队列
Celery是一个简单,灵活且可靠的分布式系统,可以处理大量消息,同时为操作提供维护该系统所需的工具。这是一个任务队列,着重于实时处理,同时还支持任务调度。Celery通过消息进行通信,通常使用经纪人
Celery异步任务队列
0
TaskQueue-swiftiOS 异步任务队列
TaskQueue(swift) 是个非常强大的 Swift 类,用来管理异步任务,需要一个一个的执
TaskQueue-swiftiOS 异步任务队列
0
TaskQueue-swiftiOS 异步任务队列
TaskQueue(swift)是个非常强大的Swift类,用来管理异步任务,需要一个一个的执行,用户只负责添加任务到队列,队列会排序然后一个一个执行。
TaskQueue-swiftiOS 异步任务队列
0
YTaskGo 异步任务队列
YTask是Go的异步任务队列,比起其他框架更方便快捷。架构图:特性:支持几乎所有类型,包括基本类型(int,floalt,string),数组切片,结构体以及复杂的结构体嵌套。注册任务,调用任务一行
YTaskGo 异步任务队列
0