2016-03-20 14 views
0

Ich erstelle eine App, die eine JobQueue mit Amazon SQS verwendet.SQS: Kennen verbleibende Jobs

Jedes Mal, wenn sich ein Benutzer anmeldet, erstelle ich eine Reihe von Jobs für diesen bestimmten Benutzer, und ich möchte, dass er alle seine Jobs bearbeitet hat, bevor er den Benutzer zu einem bestimmten Bildschirm bringt.

Mein Problem ist, dass ich nicht wissen, wie man die Warteschlange abfragt, um zu sehen, ob noch Aufträge für einen bestimmten Benutzer ausstehen, oder wie ist die richtige Art, eine solche Lösung zu implementieren.

Alles in Bezug auf die Warteschlange (Job-Erstellung und Verarbeitung funktioniert wie erwartet). Aber ich vermisse diesen letzten Schritt.

Nur für das Protokoll:

In meiner vorherigen Implementierung ich Redis + Kue wurde mit und ich hatte einen Schlüssel mit der Benutzer-ID und der Jobanzahl, jedes Mal, wenn ein Job hinzugefügt wurde geschaffen, dass Jobanzahl erhöht wurde, und jedes Mal, wenn ein Job beendet oder fehlgeschlagen ist, habe ich diesen Zähler dekrementiert. Aber jetzt möchte ich mich von Redi + Kue entfernen und bin mir nicht sicher, wie ich diesen Schritt umsetzen soll.

Antwort

0

Amazon SQS ist nicht das ideale Werkzeug für das von Ihnen beschriebene Szenario. Ein Warteschlangensystem wird normalerweise in einer "Senden und Vergessen" -Situation verwendet, in der das sendende System nicht an einer späteren Verarbeitung interessiert ist.

Sie könnten untersuchen, Amazon Simple Workflow (SWF), die Arbeit überwacht werden kann, wie es durch mehrere Prozesse geht. Ihr vorhandener Code könnte größtenteils wiederverwendet werden, wenn das SWF-Framework hinzugefügt wurde. Oder schalten Sie es sogar von Lambda aus, da Sie bereits node.js verwenden.