Bevor ich das Rad neu erfinde, suche ich nach Zeigern zu Open-Source-Projekten, die diese Anforderungen erfüllen.Suche nach persistent, verteilt, worker queue für erlang
- in erlang implementiert obwohl gehen oder C sind möglich, wenn es nicht zu viel Gepäck ist (zB. Verdrehen Labyrinth von Abhängigkeiten)
- Endpunkt oder Client in erlang (zB: I erlang Code wollen ausgeführt werden, wenn ich die Jobs mache.)
- verteilen Sie Jobs auf Knoten, und rufen Sie eine Erlang-Funktion auf, um die Jobs auszuführen.
- bestehen die Jobs irgendwie
- keinen Master-Knoten, keinen Single Point of Failure
- homogene Architektur
- eine Warteschlange von Jobs verwalten, die auf dem Boden ohne Abwurf Arbeitsplätze gesichert bekommen können
- ein Job sein getan mehr als einmal ist ok
- Betriebsprofile wie Riak oder Couchbase (zB:. einen Knoten starten, dann die andere beginnen und sie darauf zeigen)
Stro ng Präferenz für etwas Leichtes. Es gibt eine Menge überteuerter Unternehmenslösungen in Erlang, die so lange brauchen, um zu lernen, wie es für mich wäre, dies von Grund auf neu zu erstellen (tatsächlich habe ich im Grunde genommen eine Lösung für dieses Problem als Antwort auf jemanden entwickelt sonst die Frage hier auf Stackoverflow kann ich bauen, was ich beschrieben, aber dies scheint wie ein jene Bedürfnisse, die direkt in der Mitte von dem, was erlang entworfen wurde)
Was ich in Betracht gezogen habe.. - ejabbered - mehr eines Messaging-Framework - Rabitmq - theoretisch tut dies aber jedes Mal, wenn ich auf ihre Website gehe ertrinken in einem Meer von Abstraktionen. Es scheint bereit zu sein, alles zu tun. Ich kann nicht einmal sagen, ob es irgendeine Art von Ausdauer hat.
Bearbeiten zu hinzufügen: Hier ist eine Folie Deck auf verteilte Verriegelung mit Schließfach. Scheint, wie es einen wichtigen Teil des Problems löst http://www.slideshare.net/knutnesheim/locker-distributed-consistent-locking
Weitere Edit (wenn man will, um ihre eigene Rolle.): Ich suche etwas leichter als RabbitMQ wirklich. Ich weiß, dass es tun kann, was ich will, aber es scheint, als wären die Kosten beim Lernen vergleichbar mit den Kosten, es selbst zu tun, wo am Ende die benutzerdefinierte Lösung näher an dem wäre, was ich wirklich brauche.
Ein halbes Jahr, um zu verstehen, RabbitMQ ist viel länger als der Monat oder so Ich denke, es würde mich brauchen, um meine eigene Lösung zu bauen, die ich von Anfang an vollständig verstehen würde. Ich denke, das ist meine Sorge mit RabbitMQ. Es tut alles und ist "Enterprise grade", hat aber auch eine steile Lernkurve. Gut zu wissen, dass es tun kann, was ich brauche, ich werde ein bisschen mehr Nachforschungen anstellen, um zu sehen, ob ich herausfinden kann, wie ich weitermachen und es für meine Bedürfnisse einrichten kann. – nirvana
Versuchen Sie RabbitMQ. Sie werden viel mehr davon bekommen als mit Ihrer eigenen Lösung. – Tilman
Learning RabbitMQ sollte viel weniger als das Rollen Ihrer eigenen sein. Wichtige Teile -> Austausch an Warteschlangen binden. Nachrichten werden in Exchange-Nachrichten veröffentlicht, die in die gebundenen Warteschlangen übertragen werden. Warteschlangen sind, wo Sie die Nachrichten mit Verbrauchern erhalten. Es gibt eine Menge Beispiele mit RabbitMQ-Bibliotheken. – Travis