使用芹菜从前端设置crontabs

时间:2017-03-18 10:48:39

标签: python flask celery

我正在发现芹菜,但在做我真正想要的事情时遇到了一些问题。在flask docs之后设置芹菜实例非常简单。但是celery docs之后却没有。我使用redis作为我的键值DB。但我的任务似乎没有正确安排。

from flask import Flask
from flask_celery import make_celery
from celery.schedules import crontab


app = Flask(__name__)
app.config['celery_broker_url'] = 'redis://localhost:6379'
app.config['celery_result_backend'] = 'redis://localhost:6379'

celery = make_celery(app)

@celery.task(name='flask_celery.test')
def test(arg):
    return(arg)

@celery.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    sender.add_periodic_task(10.0, test.s('hello'), name='add every 10')


celery.conf.beat_schedule = {
    'add-every-30-seconds': {
        'task': 'tasks.add',
        'schedule': 30.0,
        'args': (16, 16)
    },
}


if __name__ == '__main__':
    app.run(debug=True)

但是,使用另一个简单示例可以正常工作:

@app.route('/<mystring>')
def process(mystring):

    mystring1.delay(mystring)

    return 'task sent'

@celery.task(name='flask_celery.mystring')
def mystring1(string):
    return string

那我的crontab芹菜示例有什么问题?最终我正在寻找一种从前端设置任务的方法,即在将来的某个时间安排任务。

0 个答案:

没有答案