/ / Memcacheq vs Cronjob im Speicherverbrauch - PHP, Cron, Message-Queue, Daemon

Memcacheq vs Cronjob im Speicherverbrauch - PHP, Cron, Message-Queue, Daemon

Ist es so speicherintensiv, einen Daemon auf PHP zu schreiben (der eine Warteschlange überwacht / verarbeitet), im Vergleich zur crontab-Methode, Hintergrundtasks auszuführen?

Ich habe ~ 600 Shops auf einem Server unter einer Engine. Einige Aufgaben, bei denen die Ausführung von Ladenbesitzern viel Zeit in Anspruch nimmt, sind sinnvoll. Eine Aufgabe in Cron zu integrieren, funktioniert gut, ich mag nur bis zu 59 Sekunden Startverzögerung (Beschränkung von Cron). Also möchte ich das Warteschlangensystem ausprobieren. Ich habe nur Angst, dass es mich zwingt, 600 PHP-Threads laufen zu lassen, um diese Warteschlangen zu hören / zu verarbeiten (Shops stammen von verschiedenen Kunden, ich kann keinen gemeinsamen Daemon erstellen). Benötigt es nicht automatisch 600-1000MB mehr Speicher, was im Vergleich zu Cron (das nur einen Prozess lädt, wenn es geplant ist) keine gute Wahl ist.

Antworten:

1 für die Antwort № 1

Anstatt sie mit einer Verzögerung von 59 Sekunden in einen Cron zu stecken, warum sollte man sie nicht mit dem "at" -Daemon ausführen? Sie können einfach "jetzt" verwenden und sie werden sofort ausgeführt. Siehe zum Beispiel:

http://unixhelp.ed.ac.uk/CGI/man-cgi?at

Ich würde sicherlich nicht in Betracht ziehen 600 Threads in PHP als Daemons gleichzeitig auszuführen.


1 für die Antwort № 2

Ich habe zuvor Warteschlangenlaufwerke erstellt, die bis zu 75-100 separate PHP-Prozesse verwenden Supervisor so viele zu starten, wie ich wollte. Da sie so viel gemeinsamen Code teilen, wird dies auch vom Betriebssystem geteilt und nicht dupliziert.

Ein paar Dutzend oder mehr laufen, vielleicht mit einer Art Warteschlange mit hoher Priorität für die kleinen, schnellen Jobs und einer Untergruppe der Worker, die die großen, langsamen laufen lassen können.

Ich habe über das Thema geschrieben Mein Tech Blog, phpscaling.com.


1 für die Antwort № 3

Anstatt sie mit einer Verzögerung von 59 Sekunden in einen Cron zu stecken, warum sollte man sie nicht mit dem "at" -Daemon ausführen? Sie können einfach "jetzt" verwenden und sie werden sofort ausgeführt. Siehe zum Beispiel:

http://unixhelp.ed.ac.uk/CGI/man-cgi?at

Ich würde sicherlich nicht in Betracht ziehen 600 Threads in PHP als Daemons gleichzeitig auszuführen.


1 für die Antwort № 4

Ich habe zuvor Warteschlangenlaufwerke erstellt, die bis zu 75-100 separate PHP-Prozesse verwenden Supervisor so viele zu starten, wie ich wollte. Da sie so viel gemeinsamen Code teilen, wird dies auch vom Betriebssystem geteilt und nicht dupliziert.

Ein paar Dutzend oder mehr laufen, vielleicht mit einer Art Warteschlange mit hoher Priorität für die kleinen, schnellen Jobs und einer Untergruppe der Worker, die die großen, langsamen laufen lassen können.

Ich habe über das Thema geschrieben Mein Tech Blog, phpscaling.com.