Untitled
unknown
python
3 years ago
1.3 kB
24
Indexable
def foo():
# тут может быть запрос в базу/api
time.sleep(1)
return {"result": True}
@app.task(bind=True)
def debug_task(self):
start = datetime.datetime.now().timestamp()
for i in range(10):
foo()
result = f"working time {datetime.datetime.now().timestamp() - start}"
print(result)
>> [2022-11-20 11:31:13,899: WARNING/ForkPoolWorker-4] working time 10.01050615310669
from celery import group
@app.task()
def foo():
# тут может быть запрос в базу/api
time.sleep(1)
return {"result": True}
@app.task(bind=True)
def debug_task(self):
start = datetime.datetime.now().timestamp()
# тут создаём группу из тасок, которые будут выполняться воркерами параллельно
job = group(foo.s() for i in range(10))
result = job.apply_async()
result.ready()
print(result.get())
print(datetime.datetime.now().timestamp() - start)
>> [{'result': True}, {'result': True}, {'result': True}, {'result': True}, {'result': True}, {'result': True}, {'result': True}, {'result': True}, {'result': True}, {'result': True}]
>> 3.585052013397217
Editor is loading...