在消息上从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。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)