1. Zuhause
  2. Dokumente
  3. Entwicklerdokumentation
  4. Bienenmodule

Bienenmodule

Bienen

Wenn Sie mit XcooBee gearbeitet haben, wissen Sie, dass der XcooBee-Workflow auf Bienen ausgerichtet ist. Bienen können alleine oder in Bienenstöcken arbeiten, um Aufgaben zu erfüllen. Das Paradigma ist jedoch weitaus erweiterbarer. Jede Biene ist ein in sich geschlossenes Micro-Service-Modul. Diese Servicemodule können von jedem Entwickler geschrieben werden, der bereit ist, die Modulmuster zu lernen.

Derzeit können Bienenmodule in JavaScript geschrieben werden, das in einer NodeJS-Umgebung ausgeführt wird. Wir unterstützen NodeJS 8.10. Wir arbeiten daran, dies in späteren Phasen von XcooBee in C#, Java und Python verfügbar zu machen.

Nachdem Ihr Code vollständig und getestet ist, können Sie Ihr Repository an uns senden, indem Sie sich an developer @ xcoobee.com wenden. Dieser Vorgang ist zu diesem Zeitpunkt manuell. Bitte nehmen Sie Kontakt mit uns auf.

 

Der Lebenszyklus des Bienenmoduls

Ihr Code fungiert im Wesentlichen als unabhängiges Knotenmodul (Agent oder Plugin), das wir bei XcooBee als Biene bezeichnen. Bienen laufen in einer eingeschränkten Umgebung mit zeitlichen und räumlichen Einschränkungen (Speicher und Festplatte). Bienen können nacheinander ausgeführt werden. In diesem Fall wird die Ausführungsreihenfolge als bezeichnet Flugbahn. Die Blaupause (Klasse) einer Vielzahl von Bienen wird als bezeichnet Bienenstock. Bienen können über den Flugweg mit dem kommunizieren Flugverarbeitung Datenobjekt bei Bedarf. Jede Biene arbeitet unabhängig an der bereitgestellten Eingabedatei, um eine Ausgabedatei für die nächste zu verarbeitende Biene zu erstellen. Die zuletzt verarbeitete Ausgabedatei wird an den Benutzer oder den angegebenen Empfänger zurückgegeben.

Der Lebenszyklus besteht aus drei Schritten

  • Aufruf
  • Ausführung
  • ausschalten

Aufruf

Das XcooBee-System ruft das auf Flug() Methode Ihrer primären Codedatei für Ihr Modul, wie in der Datei package.json Ihres Moduls angegeben. Es wird die folgende Signatur verwendet:

Flug (Dienste, Daten, Rückruf) {}

Während des Aufrufs Dienstleistungen und Daten Argumente werden ausgefüllt. Mit ihnen können Sie die Eingabedatei lesen und einen Einblick in die Umgebung erhalten.

Ausführung

Der Ausführungsschritt bleibt Ihrer Fantasie überlassen. Alles, was Sie mit der Eingabedatei tun möchten, kann ausgeführt werden, sofern Sie die Einschränkungen für Verarbeitungszeit, Speicher und Speicherplatz einhalten. Die aktuellen Grenzen sind

  • Zeit:
    • kleine Instanz: 25s
    • mittlere Instanz: 140s
    • große Instanz: 280s
  • Erinnerung
    • klein: 192 MB
    • mittel: 1024 MB
    • groß: 1536 MB
  • Festplatte: 512 MB

ausschalten

Ein ordnungsgemäßes Herunterfahren erfolgt, wenn Sie das anrufen zurückrufen() Funktion, die Ihnen während des Aufrufs am Ende Ihrer Verarbeitung übergeben wurde. Sie können es entweder mit einer Fehler- oder einer Erfolgsmeldung aufrufen. Im Fehlerfall versucht das XcooBee-System Ihre Biene noch zweimal. Wenn Sie Ihre Verarbeitung nicht in der für Ihre Instanz zugewiesenen Zeit abschließen, wird dies als ungeordnetes Herunterfahren angesehen. Ihr Prozess wird beendet und XcooBee behandelt ihn als Fehlerrückruf.

Beispiel für einen erfolgreichen Rückruf

Rückruf (null, "Erfolgsmeldung");

Beispiel für einen Fehlerrückruf

Rückruf ("Problem mit Datei aufgetreten", null);

Dienstleistungen

Jede Biene erhält beim Aufruf eine Sammlung von Diensten und eine Sammlung von Daten, um ihre Operationen durchzuführen. Dies wird als übergeben Dienstleistungen Argument während des Aufrufs der Funktion flight ().

Protokoll (Nachricht, Typ)

Mit dem Protokoll können Sie Traceeinträge für Ihre Verarbeitung erstellen. Verwenden Sie diesen Dienst, um Feedback zur Dateiverarbeitung zu schreiben. Dies wird dem Endbenutzer im Allgemeinen nicht angezeigt, steht jedoch dem XcooBee-Support zur Verfügung. where message = string: Die zu protokollierende Nachricht, wobei type = enum one of (info | warning | error)

writeStream ()

Standardschreibstrom Wenn Ihre Biene im Rahmen der Verarbeitung eine Ausgabe erzeugt, können Sie diese Standardeinstellung verwenden writeStream () um es auf die Festplatte zu streamen. Wenn Sie einen bestimmten Dateinamen benötigen, können Sie den verwenden writeStreamManager () als Alternative zu erstellen.

readStream ()

Standard-Lesestream Dieser Stream hat Zugriff auf die Eingabedatei für Ihren Prozess.

writeStreamManager (Dateiname, Typ)

Art: abwischen | bee_output

Fabrik, um Schreibströme hinzuzufügen, wenn Biene die Option gesetzt hat. Sie können dies verwenden, um mehrere Dateien auf der Verarbeitungsdiskette zu erstellen. Sie können basierend auf der Typauswahl Arbeit in Prozessdateien erstellen oder Dateien ausgeben.

Zeit zu rennen()

Informationen darüber, wie viel Zeit noch verbleibt, bevor die Biene abgeschaltet wird. Die Metrik wird in Millisekunden angegeben.

addParam (Schlüssel, Wert)

Fügen Sie dem einen Parameter hinzu Flugverarbeitung Objekt. So können wir mit nachgeschalteten Bienen auf der Flugbahn kommunizieren. Fügen Sie der Parameterstruktur Daten hinzu, die für die nächste Biene bereitgestellt werden sollen (ändert die Direktivendatei, siehe Direktivendatei in der Entwicklerdokumentation).

getNextId ()

Sequenzgenerator. Gibt die nächste verfügbare Ganzzahl zurück. Dies beginnt mit 1.

Mail (Vorlage)

Sie können versuchen, eine E-Mail an den Benutzer zu senden. Dazu müssen Sie die Referenz- und Ersatzwerte für die XcooBee-E-Mail-Vorlage kennen. Weitere Details dazu in Zukunft. Dies unterliegt auch den Benachrichtigungseinstellungen der Benutzer.

Das Datenobjekt

Wenn Ihre Biene aufgerufen wird, wird ihr ein bestimmter Datensatz über das zur Verfügung gestellt Daten Argument in Ihrer Funktionsdefinition [Flug (Dienstleistungen, Daten, zurückrufen)]. Dadurch können grundlegende Informationen zur Verarbeitung an die Biene weitergeleitet werden, und sie verfügt über mehrere Unterschlüssel. Alle Unterschlüssel sind optional.

Die Unterschlüssel sind: Integrationen, Benutzerdaten, Parameter, Flugverarbeitung und Umgebung

Integrationen

Wenn die Biene Zugriffstoken von der XcooBee-Plattform benötigt und der Benutzer diese autorisiert hat, füllt die XcooBee-Plattform diesen Knoten mit spezifischen Informationen, die für jede Integration benötigt werden. Die Struktur des Objekts hängt von der Integration ab, auf die zugegriffen wird.

Benutzerdaten

Grunddaten über den Benutzer wie Name und XcooBeeId. Dies enthält auch die externe Referenz des Benutzers, die über übergeben wird userReference Element der Bienenrichtlinie.

Parameter

Die Verarbeitungsparameter, die der Benutzer während des Einstellungsprozesses der Biene angegeben und in die Bienenrichtliniendatei geschrieben hat.

Flugverarbeitung

Dies ist ein Kommunikationsobjekt, das von allen Bienen geteilt wird. Bienen können Daten mit dem hinzufügen addParam (Schlüssel, Wert) Bedienung. Bienen können alle von früheren Bienen gespeicherten Daten lesen (für die mehrstufige Verarbeitung). Sie können neue Daten schreiben. Sie können nur ihre eigenen Daten überschreiben (Daten, die diese Biene geschrieben hat).

env

Dieser Knoten enthält grundlegende Umgebungsinformationen wie den Pfad zu Arbeitsdateien und Ausgabedateien. Dies kann von Programmen verwendet werden, um Dateien direkt in sie zu platzieren. Dies wird jedoch nicht empfohlen.

Modulaufbau

Beim Schreiben eines Bienenmoduls sollten minimale Regeln beachtet werden:

  • Sie sollten eslint generell nach dem AirBnB-Regelsatz verwenden. Wir bei XcooBee haben einige Änderungen vorgenommen, die in der .eslintrc Beispieldatei im Beispielprojekt.
  • Sie sollten eine Testabdeckung für mindestens 80% Ihres Codes haben
  • Stellen Sie eine SVG-Grafik bereit, die als visuelle Kennung für Ihre Biene dient.
  • Geben Sie den Bienennamen und den Beschreibungstext in mindestens einer der unterstützten Sprachen für XcooBee an.

 

Probe Biene

In diesem öffentlichen Repo sehen Sie eine Beispielimplementierung einer Biene. Dies soll nicht umfassend sein oder alle Elemente der Bienenmodul-API vollständig anzeigen. Es sollte Ihnen jedoch den Einstieg erleichtern.

https://github.com/XcooBee/test-bee-simple

Testen Sie Ihre Arbeit

Wir haben ein Testdienstprogramm, das Sie in Ihre Projekte aufnehmen können, um sie lokal auszuführen und Probleme in der Entwicklungsumgebung Ihrer Wahl zu beobachten und zu beheben.

https://github.com/XcooBee/bee-test-utility

 

Überprüfungsanforderung

Nachdem Ihr Code vollständig und getestet ist, können Sie Ihr Repository an uns senden, indem Sie sich an developer @ xcoobee.com wenden. Dieser Vorgang ist zu diesem Zeitpunkt manuell. Bitte nehmen Sie Kontakt mit uns auf.

Bienenmodul für den allgemeinen Gebrauch:

Vielen Dank, dass Sie zur Community beigetragen und Verbesserungen vorgenommen haben. Sie müssen Ihre Bienen unter MIT- oder Apache-Lizenz veröffentlichen, damit wir sie verwenden können. Wir werden eine Analyse der Infrastrukturkosten durchführen und die für die Nutzung geeigneten Grundpunkte bewerten.

Für den privaten oder geschäftlichen Gebrauch:

Wenn Sie eine Unternehmensorganisation sind und eine Biene nur für den internen Gebrauch erstellen, kann es zu einer Bewertung der Servicekosten kommen. Wir werden uns mit Ihnen in Verbindung setzen, um alle verbleibenden Details wie den Umfang Ihrer Biene zu besprechen (wer kann sie verwenden, zu welchen Kosten usw.). Sie müssen auch einigen rechtlichen Bestimmungen zustimmen, bevor wir die Biene veröffentlichen können.

 

 

 

Fandest du diesen Artikel hilfreich? Ja Nein

Wie können wir helfen?