Есть поток, который в цикле открывает файл и засовывает содержимое в Queue.
#!/usr/bin/env python3 import json import threading import queue import time from bottle import get, run, response def fileUpdater(s): while True: time.sleep(s) File = open('ololo.json', 'r', encoding='utf-8') Data = json.loads('[%s]' % File.read()) File.close() q.put(Data) q = queue.Queue() threading.Thread(target=fileUpdater, args=[10]).start() @get('/items/<itemId>') def getItem(itemId): Data = q.get() returnData = list() response.content_type = 'application/json' return(json.dumps(Data)) run(host='0.0.0.0', port=1337, debug=True)
Посоветуйте, как переписать код правильно, чтобы функция getItem() всегда имела актуальные данные и не ждала окончания работы цикла в потоке?
Пока писал сюда, понял что Queue я использовал не правильно, потому что очередь заполняется каждые 10 секунд, а данные из нее могут забираться гораздо чаще.
Спасибо.