Memcacheq против cronjob в потреблении памяти - PullRequest
0 голосов
/ 05 февраля 2012

Неужели так много памяти требует написания демона на php (который прослушивает / обрабатывает очередь) по сравнению с crontab способом выполнения фоновых задач?

У меня ~ 600 магазинов на одном сервере под одним движком.Некоторые задачи, выполняемые владельцем магазина, требуют много времени, поэтому разумно их раскошелиться.Помещение задачи в cron работает хорошо, мне просто не нравится задержка запуска до 59 секунд (ограничение cron).Поэтому я хотел бы попробовать систему очередей.Я просто боюсь, что это заставит меня запустить 600 php-потоков для прослушивания / обработки этих очередей (магазины принадлежат разным покупателям, я не могу создать общего демона).Разве для этого не требуется автоматически 600-1000 МБ дополнительной памяти, что тогда не является хорошим выбором по сравнению с cron (который загружает процесс, только если он был запланирован).

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Ранее я создавал обработчики очередей, которые запускали до 75-100 отдельных процессов PHP, используя supervisor для запуска столько, сколько я хотел.Поскольку они совместно используют так много общего кода, он также используется ОС и не дублируется.

Запуск нескольких десятков или более, возможно, с каким-либо типом высокоприоритетной очереди для небольших, быстрых заданий иподмножество рабочих, которые могут с удовольствием управлять большими, медленными.

Я написал по этому вопросу на мой технический блог, phpscaling.com .

1 голос
/ 05 февраля 2012

Вместо того, чтобы помещать их в cron с задержкой в ​​59 секунд, почему бы не запустить их с помощью демона at?Вы можете просто использовать «сейчас», и они сразу же запустятся.См., Например:

...