NEWS
Blockly mit Funktion einer Warteschlange
-
Moin Leute,
ich habe die Tage einiges an meinen Scripten im IOB optimiert.
Ein Ergebnis der Änderungen ist, dass ich nun ein zentrale Script zum Versenden von Messages habe.
Das ist ein globales Script und wird von allen Scripts verwendet, die etwas versenden möchten.
(E-Mail, Matrix, Pushover, Web-Requests)
Nun habe ich identifiziert, dass die Web-Requests in meinem globalen Script nur alle 60+ Sekunden aufgerufen werden dürfen.
Mein erster Gedanke war, einen Timeout einzubauen. Das hat den Nachteil, dass dann jedes mal ein neuer Timeout gestartet wird, und ich immer noch nicht sicher sagen kann, ob der Web-Request innerhalb oder außerhalb des gültigen Zeitfensters war. Die Idee ist also, die Aufrufe in eine Queue zu parken und mit einem 60sec. Intervall abarbeiten.
Hat das schon mal jemand gemacht? Ist Blockly dazu überhaupt in der Lage?
Danke und Gruß -
@kuumaur sagte: Ist Blockly dazu überhaupt in der Lage?
Na klar, ein Array als Fifo organisiert. Wenn es sich um ein globales Skript handelt, sollte das Array in einem Datenpunkt gespeichert und ausgelesen werden. Allerdings dürfte ein Intervall in einem globalen Skript schwierig werden.
-
@paul53
Mega schnelle Antwort
Ich versuche mich mal an deiner Idee.... -
Nee, bei mir klingelt nichts.
Ich habe ein Object
0_userdata.0.Custom_Var_NabaztagQueue
als Array angelegt
Wie schreibe ich nun Werte da rein und wie lösche ich die wieder? Ich stehe auf dem Schlauch. Ist wahrscheinlich ganz einfach und ich sehe den Wald vor lauter Bäumen nicht!
Das List-Item in Blockly ist scheinbar nicht dafür einsetzbar.
Ich denke, dass ich mal wieder Starthilfe benötige. Hast Du @paul53 eine Dokumentationquelle für mich? -
@kuumaur
Die globale Funktion, die in den Fifo schreibt, könnte so aussehen:Das Senden (Leeren des Fifo) kann nicht global erfolgen, sondern in einem zentralen (nicht globalen) Skript, das so aussehen könnte:
EDIT: Den Fifo-Datenpunkt initialisiere zu Anfang mit einem leeren Array.
-
@paul53 Vielen Dank für deine Unterstützung. Ich werde versuchen dein Beispiel zu verstehen.