celery source code analysis
最近用celery做了分布式消息队列服务(我们取名hera), 同时稍微改了一些strategy, celery的一些retry的逻辑, 增加了pause功能,并且为项目封装了一个简单的go-celery, 现在它支持:
- 自定义strategy, 用于对消息收到后,Request封装前的一些逻辑;
- 更实效的支持revoke的expire和active times;
- 重载Task的on_failure, on_success等事件回调方法;
- 新增backend支持:redis-sentinel
- 新增pause功能(这个暂还不支持针对running状态的task做pause);
- 支持etcd配置管理和服务发现;
- 封装部分任务方法, 以支持golang的任务调用;
celery代码的结构很不错, 等全部整理好, 自己将整理下写出来。