tornado 是一个异步服务器框架,性能不错的,这里搭建一个简单的 server,来调用celery 创建 定时任务
异步任务的实现原理也相对简单,因为中间 broker 的存在,其实也就是将客户端和服务器分开了。那么定时任务又是怎么个道理呢?其实定时任务是一种特别的异步任务,原理和异步任务一样,但是,有一样不相同的就是定时任务的客户端是定时器,我们设置定时任务的执行周期,然后就交给 Celery 定期得帮我们触发异步任务。
首先需要知道要想使用 Celery 的定时任务,我们需要启动两个东西,分别是:
- 定时器,也叫作 beater,也就是帮助我们计算什么时候执行什么操作
- 执行器,也叫作 worker,真正执行任务的地方,我们的任务都是通过这个运行的
安装:
pip install celery
pip install tornado
目录图:
tasks.py
import time
from celery.bin import worker as celery_worker
from celery import Celery, platforms
from datetime import timedelta
from urllib import request
from tornado.httpclient import HTTPClient
platforms.C_FORCE_ROOT = True
broker = 'amqp://admin:guest@127.0.0.1:5672/'
backend = '