Answer the question
In order to leave comments, you need to log in
What is the correct way to use queues in Flask python?
All the best! Please tell me how to use queues in conjunction with Flask.
I sort of ripped them to my Flask server, but I'm not sure if it's right.
Here is an example of my implementation:
from Queue import Queue
import threading
from flask import Flask
class Sender(object):
def send(self):
# sending...
return "sended"
senderManager = Sender()
app = Flask(__name__)
q = Queue()
t = threading.Thread(target=q_worker)
t.setDaemon(True)
t.start()
def send_command(item):
senderManager.send(item)
def q_worker():
while True:
item = q.get()
send_command(item)
q.task_done()
@app.route("/action", methods=['POST'])
def action():
item = request.json['item']
q.put(item)
return "added to q"
q.join()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=port)
Answer the question
In order to leave comments, you need to log in
Если у вас будет больше одного процесса с Flask приложением (а так скорее всего и должно быть), то у каждого процесса будет своя очередь, и все это будет работать не так, как вам нужно.
Самый простой способ писать события в БД, и скрипт по крону будет отправлять команды железу.
Если по скорости такой вариант не подходит, смотрите в сторону RabbitMQ
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question