去年写的一个小 library —— Django 3 不需要额外 worker 的后台任务处理
資深大佬 : ericls 1
简单用例:
from django_simple_task import defer def task1(): time.sleep(1) print("task1 done") async def task2(): await asyncio.sleep(1) print("task2 done") def view(requests): defer(task1) defer(task2) return HttpResponse(b"My View")
这里 task1 和 task2 都会在 view 返回后执行。
这个东西不能替代 celery,只适合一些简短且不 critical 的任务。虽有有一些机制控制并发数量和结束应用前等待队列清空。
这个原理很简单,但是如果每个项目都自己写一个又很麻烦 所以就整理了一下。 有兴趣的请点下面的链接:
View on PyPI
View on GitHub
Read the docs
大佬有話說 (4)