在Flask中进行异步任务

在Flask中进行异步任务,第1张

在Flask中进行异步任务

我将使用Celery为您处理异步任务。您需要安装代理以充当任务队列(建议使用RabbitMQ和Redis)。

app.py

from flask import Flaskfrom celery import Celerybroker_url = 'amqp://guest@localhost'          # Broker URL for RabbitMQ task queueapp = Flask(__name__)    celery = Celery(app.name, broker=broker_url)celery.config_from_object('celeryconfig')      # Your celery configurations in a celeryconfig.py@celery.task(bind=True)def some_long_task(self, x, y):    # Do some long task    ...@app.route('/render/<id>', methods=['POST'])def render_script(id=None):    ...    data = json.loads(request.data)    text_list = data.get('text_list')    final_file = audio_class.render_audio(data=text_list)    some_long_task.delay(x, y)      # Call your async task and pass whatever necessary variables    return Response(        mimetype='application/json',        status=200    )

运行您的Flask应用程序,然后启动另一个过程来运行您的芹菜工作者。

$ celery worker -A app.celery --loglevel=debug

我还要参考Miguel Gringberg的文章,以获取更深入的将Celery与Flask结合使用的指南。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5668043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存