问题描述
我目前正在线程内部运行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 (将#修改为@)