在消息上从flask-socketio更改全局实例的状态

时间:2020-09-28 07:56:56

标签: python flask-socketio

我目前正在线程内部运行flask-socketio。在特定的socketio事件中,我想更改主线程中全局对象的状态,即执行可能会更改其实例变量值的函数

在我的实际程序中,“ self.params”是chromedrivers的列表。发出信号时,将删除或添加驱动程序。这有什么区别吗? Chromedriver是不可拾取的对象。

这是一个烧瓶套接字代码,它是一个简化示例:

from gevent import get_hub
get_hub().NOT_ERROR += (KeyboardInterrupt,)

from flask import Flask
from flask_socketio import SocketIO, emit
import threading

app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecret'
socketio = SocketIO(app, cors_allowed_origins="*")

class SomeObj():
    def __init__(self, param):
        self.param = param
    def query(self):
        self.param += 1
        return

global_obj = SomeObj(0)

@socketio.on('msg')
def handle_msg():
    global_obj.query()

def start():
    def run():
        socketio.run(app, port=5005)

    SocketIOThread = threading.Thread(target=run)
    SocketIOThread.daemon = True
    SocketIOThread.start()

if __name__ == '__main__':
    start()
    while True:
        a = input()
        if a == '`':
            break
        else:
            print(global_obj.param)

我该如何实现?每次我只有0。

0 个答案:

没有答案