2016-09-27 2 views
0

Ich benutze Symfony framework3 mit Pheanstalk Bundle und Doctrine. Ich erstelle das Ereignis, das Daten an Bohnenstange sendet. Die andere SF-App auf dem anderen Server führt einen Job aus und aktualisiert den Benachrichtigungsstatus für die erste SF-App, um sie abzuschließen. Wie kann ich überprüfen, wenn der Status aktualisiert wird und als Set Alarm wie folgt aus:Machen Sie Benachrichtigungen, wenn der Job abgeschlossen ist

http://byrobin.nl/store/wp-content/uploads/sites/4/2016/03/local.png

ich einen Befehl erstellen, die Inf-Schleife haben und für Status-Update überprüft, vielleicht Zuhörer auf Preupdate? Außerdem habe ich das gleiche Problem mit dem Ausführen von Befehlen, die Beanstalk-Jobs prüfen und ausführen. Im Dev-Modus laufe ich es von Hand, aber ich versuche Infinitiv-Schleife wie while (true) aber es lädt meinen Puffer und stürzt ab. Ich dachte an Cron Job, der jede Minute oder zwei läuft? Was ist die beste Lösung für diese beiden Probleme? Irgendein Rat?

Antwort

0

1) Es wäre gut mit WebSockets, da es keine (echte) Schleife beinhaltet. Ein Websocket kann vom Frontend geöffnet werden, nachdem eine Aufgabe zur Bearbeitung übergeben wurde. Nachdem der Job die Verarbeitung beendet hat, benachrichtigt er die Serverseite des Websockets, um die Informationen an den Socket für das Frontend zurückzugeben.

2) Eine andere Möglichkeit ist es, eine Nachricht zu senden, und in der params name anonyme Tube (einen eindeutigen Namen basierend auf Zeit und Präfix), wo der Arbeiter die Antwort setzen muss. Und bevor Sie den Job abschicken, melden Sie sich an beanstalkd an dem anonymen Kanal an, senden Sie den Job, und der Job wird fertiggestellt, und die Antwort wird an die Tube gesendet. Da es dort bereits einen Abonnenten gibt, reserviert es den Job und kümmert sich darum, löscht ihn dann und die Tube wird ebenfalls entfernt.

Verwandte Themen