Я создал приложение Flask, которое извлекает данные из очереди, которая обновляется в отдельном потоке. Я не уверен, почему очередь пуста, когда я получаю ее из конечной точки Flask GET, и немного не знаю, что означает поточно-безопасность очередей, поскольку мой пример, похоже, не отражает этого.
В приведенном ниже примере очередь в маршруте измерений Flask @app.route('/measurements') пуста, даже если она обновлена в обработчике сообщений TCP. Если кто-нибудь может меня просветить, я был бы признателен.
Я запускаю это на Ubuntu с Python3, если это актуально.
from flask import Flask, render_template
import socket
from threading import Thread
import os
from wyze_sdk import Client
from dotenv import load_dotenv
from wyze_sdk.errors import WyzeApiError
import time
from queue import Queue
load_dotenv()
app = Flask(__name__)
start_time = time.time()
response = Client().login(
email=os.environ['WYZE_EMAIL'],
password=os.environ['WYZE_PASSWORD'],
key_id=os.environ['WYZE_KEY_ID'],
api_key=os.environ['WYZE_API_KEY']
)
client = Client(token=response['access_token'])
HOST = '192.168.1.207' # Listen on all network interfaces
PORT = 9000 # The same port as in your ESP8266 sketch
PORT_UI = 7001
MIN_WATER_DIST = 20 # minimum distance from sensor to water in cm
MAX_WATER_DIST = 45 # maximum distance from sensor to water in cm
MAX_TIME_PLUG_ON = 600 # maximum amount of time plug should be on
# Initialize state variables
plug_on_time = None # Track when the plug was turned on
measurements = Queue(maxsize=86400)
@app.route('/measurements')
def measurements_api():
current_time = time.time()
recent_measurements = [m for m in list(measurements.queue) if current_time - m['timestamp']
Подробнее здесь: https://stackoverflow.com/questions/793 ... -of-thread
Очередь Python не обновляется за пределами потока ⇐ Python
Программы на Python
-
Anonymous
1737954268
Anonymous
Я создал приложение Flask, которое извлекает данные из очереди, которая обновляется в отдельном потоке. Я не уверен, почему очередь пуста, когда я получаю ее из конечной точки Flask GET, и немного не знаю, что означает поточно-безопасность очередей, поскольку мой пример, похоже, не отражает этого.
В приведенном ниже примере очередь в маршруте измерений Flask @app.route('/measurements') пуста, даже если она обновлена в обработчике сообщений TCP. Если кто-нибудь может меня просветить, я был бы признателен.
Я запускаю это на Ubuntu с Python3, если это актуально.
from flask import Flask, render_template
import socket
from threading import Thread
import os
from wyze_sdk import Client
from dotenv import load_dotenv
from wyze_sdk.errors import WyzeApiError
import time
from queue import Queue
load_dotenv()
app = Flask(__name__)
start_time = time.time()
response = Client().login(
email=os.environ['WYZE_EMAIL'],
password=os.environ['WYZE_PASSWORD'],
key_id=os.environ['WYZE_KEY_ID'],
api_key=os.environ['WYZE_API_KEY']
)
client = Client(token=response['access_token'])
HOST = '192.168.1.207' # Listen on all network interfaces
PORT = 9000 # The same port as in your ESP8266 sketch
PORT_UI = 7001
MIN_WATER_DIST = 20 # minimum distance from sensor to water in cm
MAX_WATER_DIST = 45 # maximum distance from sensor to water in cm
MAX_TIME_PLUG_ON = 600 # maximum amount of time plug should be on
# Initialize state variables
plug_on_time = None # Track when the plug was turned on
measurements = Queue(maxsize=86400)
@app.route('/measurements')
def measurements_api():
current_time = time.time()
recent_measurements = [m for m in list(measurements.queue) if current_time - m['timestamp']
Подробнее здесь: [url]https://stackoverflow.com/questions/79389718/python-queue-not-updated-outside-of-thread[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия