定期在芹菜任务中启动HTTP请求



我正在使用请求(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 ...

相关内容

  • 没有找到相关文章

最新更新