想法记录--http封装celery

前提

celery是分布式任务队列,使用起来也十分方便,但是,在项目中会有所限制,不能把相关代码独立。导致有时候项目很臃肿。

之前的文章中提到了把celery相关的做成基础库,来摆脱限制,但是有些不合理,不能够使用celery的一些特性,譬如频率限制等。但是,这也不方便且不合理:做成基础库之后需要再每个使用到相关任务的工程所在的机器或是容器装一遍。

使用原味的celery如何解决

参考之前在github上面有个项目是把rpc服务转化为http服务,这样,rpc服务不仅可以通过rpc调用,也可以通过http调用。

那么celery是不是可以使用同样的方法:把celery里面的任务映射到url上,再包装到http协议上或是rpc协议上,然后在http或rpc中调用celery的异步方法即可。

这样做可以把celery中的异步任务独立出来,做成公共基础库,扩展也方便。但是相对于直接使用celery,会有所延迟。

如果是对celery任务执行不需要立马获得结果或是有很多个工程都需要进行相同的异步任务处理,那么,用http封装起celery是可行的。

此为本人的个人想法,还未实施。

使用容器方便基础库使用:

做一个基础镜像包含基础库即可

猜你喜欢

转载自blog.csdn.net/qq_39469761/article/details/79880186