2
我有燒瓶芹菜應用實例化芹菜實例。 據我所知,從視.py文件來看,我可以正常瓶路由添加到同一個.py文件,我需要跑兩次相同的代碼:燒瓶芹菜應用與普通燒瓶應用(如何讓它們同時工作)
運行工人:
%芹菜工人-A app.celery ...
運行相同的代碼作爲普通瓶的應用:
%蟒蛇app.py ...
我的問題是:如果正常瓶的應用程序是真正獨立的進程從芹菜的應用程序,那麼我怎麼能操縱運行芹菜例如,從瓶路線做這樣的事情:
celery.control.purge()
celery.control.inspect() etc ???
這裏是我的代碼:
import os
import random
import time
from flask import Flask, request, render_template, session, flash, redirect, \
url_for, jsonify
from celery import Celery
app = Flask(__name__)
# Celery configuration
app.config['CELERY_BROKER_URL'] = 'redis://localhost:6379/0'
app.config['CELERY_RESULT_BACKEND'] = 'redis://localhost:6379/0'
# Initialize Celery
celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
@celery.task
def send_async_email(msg):
"""Background task to send an email with Flask-Mail."""
with app.app_context():
mail.send(msg)
@app.route('/purge', methods=['GET', 'POST'])
def purge_tasks():
## want to do stuffs with the running celery instance, e.g:
## doing:
## celery.control.purge()
## celery.control.inspect()
##
## BUT HOW??
if __name__ == '__main__':
app.run(debug=True)
我一直在尋找答案的互聯網,但沒有答案的明確回答了這個問題。
非常感謝你的幫助/指針。
不是100%肯定的,但如果你的燒瓶app是一個URI,你不能在celery任務中調用它來使用它嗎? – postoronnim
感謝您的評論。然而,我們的目標是通過Flask路徑引用活動的芹菜實例來完成任務的操作(列表,檢查)。 即:我想我應該參照本芹菜實例做: 「芹菜芹菜=(app.name,經紀人=的app.config [」 CELERY_BROKER_URL「])」 但是,我怎麼能是指從該實例一個燒瓶路線(一個不同的過程),而不是一個芹菜工人 - 一個......實例? ? 也許我在錯誤的方向思考這個問題,但是我們如何從Flask路由中檢查當前活動的芹菜隊列? –
如果有幫助,接受答案,如果你不介意。 – postoronnim