我正在使用请求(http://docs.python-requests.org/en/master/)在芹菜任务中的会话。
我有两个端点,需要定期提取。
import requests
from celery import shared_task
yahoo = requests.Session()
@shared_task
def fetch_yahoo():
url = 'http://some_yahoo_url'
download = yahoo.get(url)
do_something_with(download)
问题是,任务在一段时间后停止运行。(do_something_with未被调用)
我对请求的用法有问题吗?
我认为你需要芹菜节https://celery.readthedocs.io/en/latest/reference/celery.beat.html它允许启动定期芹菜任务。加入celeryconfih.py
from celery.schedules import crontab
class CeleryConfig:
beat_schedule = {
'my-regular-task': {
'task': '<path to task call>',
'schedule': timedelta(minutes=5),
'args': (),
'options': {
'expires': 60,
},
},
'my-cron-task': {
'task': '<path to task call>',
'schedule': crontab(hour=4, minute=11),
'args': (),
'options': {
'expires': 60,
},
},
}
然后使用-B
flag
celery -A app.celery -B ...