需求: 每5分钟中查询一次博客列表
步骤:
开启 redis服务器
开启本地项目服务器
新建tasks文件 代码如下:
import requests
from celery import Celery
app = Celery('tasks', broker='redis://127.0.0.1:6379/0')
@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
sender.add_periodic_task(300, test.s('http://127.0.0.1:8000/blog/add/'), name='add every 5minites')
@app.task
def test(url):
print('定时任务开启,,,,,开启操作')
requests.get(url)
注意 celery 版本需要是4.0以上版本
进入与tasks 同级目录
celery 定时器启动命令:
case_manage>celery -A tasks beat
celery 开启命令:
celery -A tasks worker --loglevel=info --pool=solo
当非正常关闭定时器,再次启动定时器时如果报如下错误时:
celery beat v4.1.1 (latentcall) is starting.
ERROR: Pidfile (celerybeat.pid) already exists.
Seems we're already running? (pid: 35544)
只需要删除tasks同级目录下的celerybeat.pid文件再重启即可!