簡體   English   中英

Flask Socket.IO給Redis錯誤,但我正在使用RabbitMQ

[英]Flask Socket.IO giving Redis error but I am using RabbitMQ

因此,我在Flask中制作了一個應用程序,並在使用RabbitMQ作為消息代理和后端Celery worker。 我還使用SocketIO以便向客戶端報告芹菜工作者的狀態。 當我運行我的應用程序時,出現以下錯誤: 在此處輸入圖片說明

如果您讓我知道為什么會出現此錯誤,我們將不勝感激。

app.py

app = Flask(__name__)
app.config['SECRET_KEY'] = ''

app.config.update(
CELERY_BROKER_URL = 'amqp://localhost//',
CELERY_RESULT_BACKEND='amqp://localhost//'
)

socketio = SocketIO(app, message_queue='amqp://')
celery = make_celery(app)


@app.route('/')
def my_form():
    return render_template("form.html")

的JavaScript

var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port );

make_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)
    TaskBase = celery.Task
    class ContextTask(TaskBase):
        abstract = True
        def __call__(self, *args, **kwargs):
            with app.app_context():
                return TaskBase.__call__(self, *args, **kwargs)
    celery.Task = ContextTask
    return celery

糟糕,錯誤消息已從其他模塊復制/粘貼,我忘了更新。 該消息應顯示為“ Kombu需要一個猴子修補套接字庫才能使用gevent”。

基本上這就是說,如果沒有猴子補丁,gevent將在發出套接字操作時阻塞。 有關更多詳細信息,請參見http://www.gevent.org/gevent.monkey.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM