сокет сокета - PullRequest
       24

сокет сокета

0 голосов
/ 11 июня 2018

Я пытаюсь использовать многопроцессорное значение для обновления элемента данных с помощью многопроцессорной функции.Значение данных не обновляется более одного раза.Я прочитал следующие страницы и другие вопросы: Интересно, не мешает ли приложение 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.Все работает, кроме данных Value share.

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 не обновляется.Кажется, он установлен в первый раз, а не в последующий.
Я не включаюсь, так как функция работает постоянно.Помощь

1 Ответ

0 голосов
/ 12 июня 2018

Вам необходимо указать в начале вашей функции orerry_operations:

global mp_date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...