celery 定时任务 简单实例

需求: 每5分钟中查询一次博客列表

步骤:

开启 redis服务器

开启本地项目服务器

 

新建tasks文件  代码如下:

# coding:utf-8
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文件再重启即可!

 


版权声明:本文为happy_leizi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。