在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工作者。

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


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

原文地址:https://54852.com/zaji/5004412.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存