Как реализовать выполнение скрипта несущего большую нагрузку
AiK, а чем реализация демона на перл отличается от реализации на php? что такого специфичного есть в перл, чего нет в пхп? >/dev/null
berkut, я не очень хорошо знаю пёрл и тем более php.
Вот что я делаю на perl:
В результате, юзверь видит сообщение, что процесс пошёл, спокойно закрывает браузер и идёт пить кофе.
Как только дочерний процесс завершит свою работу, хоть через минуту, хоть через пару часов, юзверь получит отчёт по почте.
Как такое же реализовать на php я понятия не имею. Твоя идея с перенаправлением потока в >/dev/null годится, но только если скрипту-демону на php не надо параметры передавать. Как-то у мну параметры в командной строчке передать не очень получилось.
Вот что я делаю на perl:
Код: Выделить всё
$SIG{CHLD}='IGNORE';
if (!defined ($pid = fork)) {
die "Unable to fork: $!\n";
} elsif (! $pid) { # it is a child branch
close(STDIN); close(STDOUT); close(STDERR);
# что-то очень долго делаем и отправляем репорт по завершении
}
else {# this is the branch for the parent
print "Content-type: text/html\n\n";
print "Ваш запрос принят к обработке. Через некоторое время".
."результаты будут отправлены на Ваш e-mail.";
exit; #terminate parent process
}
Как только дочерний процесс завершит свою работу, хоть через минуту, хоть через пару часов, юзверь получит отчёт по почте.
Как такое же реализовать на php я понятия не имею. Твоя идея с перенаправлением потока в >/dev/null годится, но только если скрипту-демону на php не надо параметры передавать. Как-то у мну параметры в командной строчке передать не очень получилось.
Даже самый дурацкий замысел можно воплотить мастерски