Это плохая идея, чтобы раскошелиться под mod_perl2?

Есть ли противопоказания к форку под mod_perl2? Следует ли использовать другой способ запуска фонового процесса под mod_perl2?

2 ответа

Решение

Обычно я использую обработчик очистки для запуска всего, что должно произойти после завершения HTTP-запроса:

$r->push_handlers( PerlCleanupHandler => sub { print "I'm doing stuff!" } );

Если вам действительно нужно сделать форк, вы не должны делать это обычным способом, потому что ваш разветвленный процесс будет мешать различным ресурсам, которые нужны Apache, таким как файловые дескрипторы и сокеты, и очень сложно правильно все это обработать. Вместо этого попробуйте Apache2:: SubProcess.

Вы могли бы рассмотреть запуск обратного прокси. У вас есть тяжелые процессы на бэкэнде, которые обрабатывают ресурсоемкие вещи, и легкие процессы на фронте, чтобы обрабатывать легкие вещи, такие как возврат статического контента. Ваши тяжелые процессы не связывают легкие вещи, потому что вам не нужно ждать, пока они закончат то, что они делают.

Другие вопросы по тегам