Инструменты пользователя

Инструменты сайта


celery

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
celery [2018/12/18 14:55]
admin [Подключаем Базу данных]
celery [2019/10/01 16:13] (текущий)
Строка 15: Строка 15:
     return string[::-1]     return string[::-1]
 </code> </code>
- в cli запускаем команду+ в cli запускаем celery
 <code>celery -A tasks worker --loglevel=info</code> <code>celery -A tasks worker --loglevel=info</code>
 Из другой cli проверяем Из другой cli проверяем
Строка 64: Строка 64:
 # через несколько секунд # через несколько секунд
 # получаем True # получаем True
 +
 +result.get()
 +'davven'
 +</code>
 +=====flask=====
 +Берем с [[http://flask.pocoo.org/docs/1.0/patterns/celery/|оффсайта]] колбы макет для celery называем task_celery.py
 +<code python>
 +from celery import Celery
 +
 +def make_celery(app):
 +    celery = Celery(
 +        app.import_name,
 +        backend=app.config['CELERY_RESULT_BACKEND'],
 +        broker=app.config['CELERY_BROKER_URL']
 +    )
 +    celery.conf.update(app.config)
 +
 +    class ContextTask(celery.Task):
 +        def __call__(self, *args, **kwargs):
 +            with app.app_context():
 +                return self.run(*args, **kwargs)
 +
 +    celery.Task = ContextTask
 +    return celery
 +</code>
 +Создаем модуль flask c именем celery_example.py
 +<code python>
 +from flask import Flask
 +from task_celery import make_celery
 +
 +app = Flask(__name__)
 +app.config['CELERY_BROKER_URL'] = 'amqp://localhost'
 +app.config['CELERY_RESULT_BACKEND'] = 'db+sqlite:///celery.db'
 +
 +celery = make_celery(app)
 +
 +@app.route('/process/<name>')
 +def process(name):
 +    return name
 +    
 +@celery.task(name='celery_example.reverse')
 +def reverse(string):
 +    return string[::-1]
 +
 +if __name__ == '__main__':
 +    app.run(debug=True)
 +</code>
 +стартуем celery
 +<code>
 +celery -A celery_example.celery worker --pool=eventlet -l info
 +</code>
 +проверяем в браузере
 +<code>http://127.0.0.1:5000/process/nevvad
 +проверяем бд, должна появится запись
 </code> </code>
 +=====Отправка почты=====
 +<code></code>
 <code></code> <code></code>
 <code></code> <code></code>
celery.1545134156.txt.gz · Последнее изменение: 2019/10/01 16:13 (внешнее изменение)