python celery异步循环执行
时间: 2023-07-04 12:19:58 浏览: 180
python如何实现异步调用函数执行
5星 · 资源好评率100%
可以使用Celery的periodic task来实现异步循环执行。下面是一个示例代码:
```python
from celery import Celery
from celery.decorators import periodic_task
from celery.task.schedules import crontab
import time
app = Celery('tasks', broker='amqp://guest@localhost//')
@periodic_task(run_every=crontab(minute='*/1'))
def my_task():
# 每分钟执行一次
for i in range(10):
# 异步执行的任务
time.sleep(1)
print(f'Task {i} executed asynchronously')
```
这个例子中,我们使用了Celery的`periodic_task`装饰器来定义一个定时任务。这个任务会每分钟执行一次,然后循环执行10次异步任务。在异步任务中,我们使用了`time.sleep(1)`来模拟一个耗时的操作,然后打印出执行的结果。这个任务会在后台异步执行,不会阻塞主线程。
需要注意的是,要运行这个代码,需要先启动一个Celery的worker节点,命令如下:
```bash
celery -A tasks worker --loglevel=info
```
其中`-A tasks`参数指定了Celery的应用名称为`tasks`,`--loglevel=info`参数指定了日志级别为`info`。启动worker节点后,就可以运行上面的代码了。
阅读全文