使用python而不是django的芹菜中的周期性任务

时间:2016-12-28 09:08:34

标签: python-2.7 celery-task celerybeat

大家好,我是celery和python的新手。我正在使用rabbitmq-server创建一个简单的任务。但我不知道如何在python中使用celery beat实现周期性任务。我搜索但是每次我用django定期完成任务。

我将此代码用作tasks.py: 来自芹菜进口芹菜 从时间导入strftime

app = Celery('tasks',broker='pyamqp://guest@localhost//')

@app.task
def show_time():
    return strftime('%Y-%m-%d %H:%M:%S')

run_task.py:

from tasks import show_time
show_time.delay()

谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

最后经过一些更简洁的搜索我找到了解决方案

from celery import Celery
from kombu import Queue, Exchange



class Config(object):
    CELERY_QUEUES = (
        Queue(
            'try',
            exchange=Exchange('try'),
            routing_key='try',
        ),
    )
celery =Celery('tasks',broker='pyamqp://guest@localhost//')

celery.config_from_object(Config)


celery.conf.beat_schedule = {
    'planner': {
        'task': 'task_planner.some_task',
        'schedule': 5.0,
    },
}


@celery.task(queue='try')
def some_task():
    print('Hooray')

并运行命令: celery -A task_planner worker -l info -B