为Django制作和存储电子邮件备份

django-tasker的Python项目详细描述


死的简单异步任务队列。将任务存储在数据库中。 不需要仅仅为了从进程中丢弃某些东西而需要的开销基础设施。

https://github.com/wooyek/django-tasker

https://img.shields.io/travis/wooyek/django-tasker.svghttps://img.shields.io/coveralls/wooyek/django-tasker.svghttps://img.shields.io/pypi/v/django-tasker.svg?maxAge=2592000https://img.shields.io/pypi/dm/django-tasker.svg?maxAge=2592000https://img.shields.io/pypi/pyversions/django-tasker.svg

用法

您可以自由地从函数、类和实例方法创建任务。包装任务逻辑不需要样板函数。

使用django模型实例,任务将记住实例主键,加载实例并调用方法。

classSomeModel(models.Model):...@queueabledefupdate_this_instance(self,*args,**kwargs):...defmust_do_something(self):...self.update_this_instance.queue()...

对于普通的旧类对象,任务将调用它的classmethod。也支持正常功能。

classPocoClass(Object):@queueabledefdo_stuff_with_models(cls,limit):...@queueabledefbackground_job(cls,with_this,and_that):...PocoClass.do_stuff_with_models.queue(10)background_job.queue(foo,bar)

对参数序列化的支持有限

只要调用参数是json可序列化的,并且它们被序列化为一个TaskInfo.payload字段max_length,就支持它们。 我们不需要保存太多信息,最好模型实例只保存足够的信息,以便参数化任务执行。

为什么不吃芹菜?

Celery太棒了!但有时这是一种过度的杀戮。这是一个完整的消息传递实现 您需要将任务发送给某个工作者并返回结果

维护所有的基础设施只是为了每两个请求发送一封电子邮件似乎有点过分。

为什么不是RQ?

Python-RQ是超级的。但它需要Redis。当你的背景工作没有堆积起来的时候就没事了。 使用redis保存千兆字节的任务数据就像烧钱一样。

为什么数据库作为存储?

因为你已经有了它,这是最简单的存储方式。扇形分叉导致数百万 在任务中,唯一便宜的存储是磁盘。

为什么不解雇更多的工人呢?

有时你只是不能足够快地处理任务,例如,由于api限制。这更明智 及时储存并执行。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用SerializationUtils时java ClassNotFoundException。克隆()   java Cucumber+spring:如何通过测试触发SmartLifecycle事件?   java如何使ProGuard以简单的方式工作?   java JSP页面显示来自集合的日期   谷歌地图检查坐标是否位于JAVA中谷歌地图API的多边形中   java如何在终端中使用“tokens”打印令牌?   java获取编译错误:包com。威里奥。sdk不存在   java会使用JAXB或类似工具自动填充HATEAOS链接吗?   Javascript(GraalJS)与Java中未签名的右移>>>>   如何在Java代码中创建jdbc请求的Jmeter测试   java如何在CellList中添加或删除单个元素?   java Progressbar:如何创建原始对象的深度副本