2010-08-26 2 views
1

У меня есть PHP-скрипт, который запускает другой сценарий в фоновом режиме. Недавно мой хост обновил PHP, и эта пара повторно запускает фоновый скрипт несколько раз в секунду, где он должен запускаться только один раз.PHP скрипт запуска несколько раз

Я сократил два сценария до их самой простой формы, и у них все еще есть проблема.

start.php:

<?php exec("/home/s*****/public_html/sandbox/process/pushupdate.php &"); ?> 

и pushupdate.php:

#!/usr/bin/php -q 
<?php mail('*********@gmail.com', 'test output', 'testing'); ?> 

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

+0

Для записи удалите #!/Usr/bin/php -q и выполните exec ("/ usr/bin/php /home/s*****/public_html/sandbox/process/pushupdate.php &"); имеет те же результаты. Выполняется с работы cron, но работает. –

+0

Я пробовал этот тест на нескольких разных серверах, и единственным распространенным фактором, который я могу найти, является Cpanel. –

ответ

2

Помогает ли ваш хост cronjobs? Если да, используйте их вместо вызова pushupdate.php из другого скрипта PHP. Вы решите две проблемы: если никто не винит ваш сайт, ваша почтовая очередь все равно будет обработана. Если ваш сайт занят, не будет никаких неотложных вызовов pushupdate.php

Возможной причиной является перенаправление, например. example.com на www.example.com.

start.php вызывается посетителем, не так ли?

+0

start.php НЕ вызывается посетителем. администратор из-за защищенного паролем каталога. Вы не можете увидеть его здесь, но логика не запускалась, если он уже запущен. –

+0

@David Beck: вы также можете использовать задания cron для вызова скриптов в области администратора, путем вызова php command: "php /home/s*****/public_html/sandbox/process/pushupdate.php>/dev/null 2> & 1" На самом деле я думал, что вы должны называть php cammand также в своем exec. –

+0

Запуск как cro n работает. Я хотел бы узнать, почему запуск с помощью exec не работает. –

Смежные вопросы