Ausführen while-Schleife, die gleichzeitig mit Kolben-server
Ich aktualisiere einige LEDs mit python. Ich mache das bereits so:
from LEDs import *
myLEDs = LEDs()
done = False
while not done:
myLEDs.iterate()
Wollte ich mit Flask als eine Brücke zwischen einige gut aussehende ReactJS front-end kann ich in meinem browser (zum ändern der aktuellen Muster, etc) und die LED-Steuerung code in Python.
Habe ich Fläschchen gut funktioniert, kann bei der Behandlung von HTTP-Anfragen, usw. Ich Frage mich, wie ich das einstellen kann myLEDs.iterate()
kontinuierlich zu laufen (oder laufen auf einen schnellen Zeitplan) gleichzeitig mit meinem Kolben app, während noch in der Lage miteinander zu kommunizieren, etwa so:
myLEDs = LEDs()
@app.route('/changePattern',methods=['POST'])
def changePattern():
n = request.json['num']
myLEDs.setPattern(n)
return jsonify(**locals())
if __name__ == '__main__':
app.debug = True
myLEDs.setToFrequentlyIterateAndStillTalkToFlask()
app.run()
Stieß ich auf celery
, die scheint, wie es würde den trick tun, sondern auch scheint wie overkill, wie einfach mein problem ist.
Ist mit Kolben übermaß für wollen einfach nur eine Benutzeroberfläche zum verwalten meiner python-back-end-code? Gibt es eine einfachere Bibliothek als Sellerie für läuft was im hintergrund?
Bearbeiten
Dies ist Teil eines größeren Projekts zur Entwicklung einer app mit dem Node-Webkit Vorder-Ende angebracht, um ein Python-backend. Ich bin offen für Veränderung ist mein Ansatz, um diese app, wenn es scheint nicht machbar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Multiprozess-ausführen der Schleife, in einem anderen Prozess als der Kolben HTTP-Anforderungen:
Den Aufgaben Teil ist aus hier -, multiprocessing-code von mir.
Hinweis: die "use_reloader= "False" Teil. Dies ist notwendig, um zu vermeiden, läuft die Schleife zweimal. Für den Grund siehe hier
Kann die Funktionalität getestet werden, indem Sie den server mit
aufrufen und
Ich bin zwar nicht der am besten qualifizierte hier zu kommentieren: ich denke, das könnte dir helfen.
Wie führen Sie wiederkehrende Aufgabe in der Python-Flask-framework?