在芹菜任务中请求会话

时间:2017-03-04 03:35:13

标签: python python-requests

我在芹菜任务中使用请求(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的使用有问题吗?

1 个答案:

答案 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 ...