NodeJS - Eigener Serverdienst

nico525

Ensign
Registriert
Feb. 2009
Beiträge
185
Hallo Leute,

ich möchte mir einen eigenen Dienst programmieren, der im Hintergrund läuft. Zu Lernzwecken habe ich mir dieses mal NodeJS ausgesucht, bräuchte aber Hilfe in der generellen Konzipierung.

Ich habe eine Reihe von verschiedenen Events, auf die gehört werden soll in einer Datenbank abgespeichert. Darunter beispielsweise:
  • Uhrzeit = 19:25 && Tag = Montag
  • HTTP REST-API antwortet mit true
Sofern diese ausgelöst werden, soll natürlich eine bestimmte Funktion aufgerufen werden, aber diese habe ich so weit schon fertig.

Wie löst man das ganze jetzt am geschicktesten in nodeJS?

Ich hatte jetzt zunächst mit einer Hauptfunktion angefangen, die sich nach Abschluss mit einem kleinen Delay wieder selbst aufruft. In dieser werden die Bedingungen aus der Datenbank geladen und können nun nacheinander (gleichzeitig?) abgearbeitet werden.
Wie kann man jetzt am besten auf die hinterlegten Events reagieren? Oder ist die Idee der sich wiederholenden Funktion schon falsch?
 
Deine Idee ist nicht falsch. Du hast eine Methode die in einer "endlos schleife" läuft. Diese ruft dann in einem bestimmten Takt eine 2. Methode auf die auf deine bedingungen prüft und dann das gewünschte Event ausführt.

Stichwörter sind z.B. "non blocking loop".
 
Hi,

nodejs ist an sich eine event loop. JavaScript ist single threaded (macht Synchronisation bei mehreren Prozessen sehr angenehm) aber gerade deswegen muss man darauf achten blockierende Operationen zu vermeiden. Lösung hierfür sind asynchrone callbacks.

Konkret heißt das:
* mit settimeout (s. nodejs doku) regelmäßig callback aufrufen welches die events prüft
* events definieren, d.h. für event x listener konfigurieren , also callback funktion und bei erfolgreicher Prüfung event senden (emit, s. events modul)
* zur Frage "Gleichzeitig ?" schau dir das async modul an

Lies dich ein bißchen ein, die Projekt-Doku ist eine gute Anlaufstelle.
 
Zurück
Oben