Иногда компилятор оптимизирует поле и использует регистр для его хранения. Если поток 1 выполняет запись в поле, а другой поток обращается к нему, поскольку обновление хранилось в регистре (а не в памяти), второй поток получал бы устаревшие данные.
Вы можете думать об изменчивости ключевое слово, говорящее компилятору «Я хочу, чтобы вы сохранили это значение в памяти». Это гарантирует, что второй поток получит последнее значение.
Вы делаете запрос на получение.
Попробуйте сделать пост запросом к вашему веб-сервису
r = requests.post("http://127.0.0.1/webservice", json=data)
Вы никогда не включите json = "" при создании get ... это только для публикации / обновления json на веб-сервер
Помните, что GET в терминах http предназначен только для запроса контента с конечной точки URL. POST - отправка нового контента в конечную точку URL. GET / POST
Еще один быстрый момент ... Попробуйте просто напечатать request.json в своем приложении / колбе перед serial = request.json['serial'] if 'serial' in request.json else None
и т. Д. ... просто чтобы убедиться, что данные поступает правильно после публикации.