flask - flask socketIO 多处理值
问题描述
我正在尝试使用多处理值来更新具有多处理功能的数据元素。数据值不会多次更新。我已阅读以下页面和其他问题:我想知道 Flask 应用程序是否在干扰……?
https://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent
http://timmyreilly.azurewebsites.net/flask-socketio-and-more/
https://github.com/miguelgrinberg/Flask-SocketIO/issues/356
这是一个烧瓶、wtf、socketio、bootstrap、python 2.7 应用程序。除数据价值份额外的所有作品。
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
Bootstrap(app)
socketio = SocketIO(app)
mp_date = Value('f', 0.0, lock=False)
if __name__ == '__main__':
operation_run = multiprocessing.Process(target=sys_operations,args=((parent_conn, child_conn),True, mp_date))
operation_run.start()
socketio.run(app, host='0.0.0.0', debug=True,use_reloader=False)
In the multiprocessed function
def orerry_operations(pipe, first_run, mp_date):
….
mp_date.value=moving_date #this is the update that does not work,
moving_date is a float
print 'mp_date obj: ' + str(mp_date)
print 'mp_date ' + str(mp_date.value)
print 'moving_date ' + str(moving_date)
the print results are:
mp_date obj: c_float(581948928.0)
mp_date 581948928.0
moving_date 581948957.797
mp_date obj: c_float(581948928.0)
mp_date 581948928.0
moving_date 581948959.814
mp_date obj: c_float(581948992.0)
mp_date 581948992.0
moving_date 581948961.83
如您所见, mp_date 值没有更新。它似乎是第一次设置,然后不是。
我不加入,因为该功能连续运行。帮助?
解决方案
您需要在函数的开头指定 orerry_operations:
global mp_date
推荐阅读
- jestjs - 清除测试之间的笑话不工作
- python - 使用 Selenium 实现边缘自动化 - 不断需要凭据
- ios - 带有动态页脚的 UIScrollView
- python - 如何在条件中使用列的滞后值填充 Pandas 中的另一列
- swift - 选择随机函数的聪明方法
- c# - 正则表达式替换以匿名化名称
- javascript - 从html获取高度并插入状态
- git - 使用 Gogs 和 Drone 构建 CI/CD 平台时,管道出现“无法解析主机”
- cookies - 记住我 cookie cakephp 4 在注销后无法正常工作
- web-scraping - 我用scrapy得到403,它可以在浏览器和wget中完美运行