Open patrickhilker opened 1 year ago
Es hat zudem den Vorteil mit Supervisord, dass nicht mehr Prozesse als nötig gestartet werden. Mit Cronjobs unter Symfony ist es z.B. möglich, dass im schlimmsten Falle dutzende Jobs parallel laufen (wenn die Tasks zu lange brauchen) und der Server dadurch abstürzt. Sowas ich uns mal passiert damals.
Welches Problem möchtest du lösen? Wann tritt es auf? Als Entwickler benötige ich bestimmte Prozesse, die automatisch am Leben erhalten werden. Das können bspw. bestimmte Worker-Prozesse sein, die im Hintergrund Tasks meiner App bearbeiten.
Welche Lösungsideen hast du? Ein System ähnlich wie
supervisord
odersystemd
nutzen, mit dem man Prozesse definieren kann.Hast du zusätzliche Informationen (wie z.B. Screenshots)? Ein häufiger Anwendungsfall dürften Worker für Symfony Messenger sein.
Als (zugegebenermaßen unschöner) Workaround ist es möglich, solche Worker per Cronjob zu starten und ihnen ein Timeout mitzugeben, nachdem sie sich wieder beenden sollen.
Richtet man beispielsweise einen Cronjob ein, der alle 5 Minuten läuft, kann man den Worker so starten, dass er sich nach 5 Minuten automatisch beendet. So läuft immer ein Worker parallel. Durch häufigere Ausführung des Cronjobs bzw. längere Laufzeiten lässt sich so auch die Anzahl der Worker skalieren.