我在芹菜任务中使用请求(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)
我对requests.Session的使用有问题吗?
答案 0 :(得分:0)
我认为你需要芹菜
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
标志启动
celery -A app.celery -B ...