Последовательный запуск php скрипта

bovkun

Новичок
Последовательный запуск php скрипта

Как последовательно можно запустить несколько скриптов (сейчас каждый в отдельном файле), если у хостера можно через cron запустить только один файл? Важно последовательно, т.е. запустать слудующий только после отработки предыдущего скрипта.

Заранее СПАСИБО за помощь!

ЗЫ Засунуть их в один файл нельзя, т.к. там значение констант разное.
 

fixxxer

К.О.
Партнер клуба
запускаешь по крону shell скрипт вида
#!/bin/sh
/usr/local/bin/php -f /path/to/script1.php
/usr/local/bin/php -f /path/to/script2.php
..................
 

bovkun

Новичок
Спасибо.

А где можно подробней прочитать про "-f" и т.д.?

-~{}~ 05.04.04 16:44:

Ок. А как если без использования cron, а через ОДИН php скрипт (на случай, если его в ручную запускать)?
 

AlexVN

Новичок
>А где можно подробней прочитать про "-f" и т.д.?
/usr/local/bin/php --help
 

Lav

Guest
fixxxer
Можно попробовать следующее:

shell_exec('/usr/local/bin/php -f /path/to/script1.php');
shell_exec('/usr/local/bin/php -f /path/to/script2.php');
..................
 

bovkun

Новичок
AlexVN
прочитал. Спасибо.

Lav
fixxxer
У меня каждый скрипт будет отрабатывать по минут 30-40 (рассылка). Все-таки, если я не ошибаюсь, в предложенных вариантах скрипты запустятся практически одновременно, а не после отработки предыдущего... Или я не прав?
 

fixxxer

К.О.
Партнер клуба
SA739
А ты хоть знаешь, что означает && ?

bovkun
Нет, они выполнятся строго последовательно.
 

SA739

Cogito, ergo sum
fixxxer
в bash (и не только) это означает: выполнить последующий скрипт(комманду) в случае удачного завершеня предыдущего скрипта (комманды)

-~{}~ 05.04.04 19:24:

из
man bash
....
The control operators && and || denote AND lists and OR lists, respec-
tively. An AND list has the form

command1 && command2

command2 is executed if, and only if, command1 returns an exit status
of zero.
...

-~{}~ 05.04.04 19:25:

PS. не имею привычки советовать того, что не знаю...
 

fixxxer

К.О.
Партнер клуба
SA739

И где в исходном вопросе было условие "выполнять следующий скрипт только при успешном завершении предыдущего"?

-~{}~ 05.04.04 19:37:

Опп-па. Это что же за рассылка такая?
Надеюсь не спам?

Но это не важно. Важно то, что твой скрипт убьет ОС. Либо тебя убьет хостер. :)
 

bovkun

Новичок
:) Нет не спам.
Рассылка новых объявлений, на получение которых подписался сам пользователь. Много времени уходит на формирование самого письма в html (оно клепается из разных таблиц - личные данные, названия населенных пунктов, улиц, метраж, ... литраж и т.д. и т.п.
В конечном итоге получается очень солидно, конечно понимаю, долго и морочно.... 1 письмо 0,3-0,5 сек. формируется.
... за то sendmail не забъется благодаря такому интервалу :)

SA739
fixxxer
Спасибо.

-~{}~ 06.04.04 02:16:

Автор оригинала: fixxxer
SA739

... твой скрипт убьет ОС.
Откровенно говоря, я не совсем уверен в том, что мой вариант есть самое то... :confused:

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

http://phpclub.ru/talk/showthread.php?s=&threadid=37392

http://phpclub.ru/talk/showthread.php?s=&threadid=47896


А на счет хостера... За траффик я естественно плачу, а время суток для рассылки для меня совершенно не принципиально, поэтому собираюсь рассылать все в 2-5 ночи.

Если я не прав, пожалуйста, подскажите, как правильней поступить.
 

Dmitry22

Guest
Bovkun, можешь в конец каждого скрипта вставлять header("Location: /next_script.php");
Все будет последовательно и только после полной обработки...:))))))))
 

SiMM

Новичок
Dmitry22, и что? Будешь сидеть перед браузером при рассылке? Серверу плевать на передаваемые хидеры - его интересуют только принимаемые.
 

Dmitry22

Guest
Действительно полный бред :).
Ну тогда, можно из крона запускать сценарий, который будет проверять, что содержится в subscribe.status. И если там лежит слово «Start», то запускать первый сценарий, если файл заблокирован, то ждать, если «script2» то…, ну и так далее, и соответственно если «Рассылка успешно завершена», то успокаиваться на этом.
 

fixxxer

К.О.
Партнер клуба
Дело не во времени, а в том, что, если у хостера руки не из ж., то время на использование процессорного времени для юзерских процессов ограничено.
 

bovkun

Новичок
Мда....

Ёлы! Проблемка... И не одно получается.

1. Найти лучшее решение задачи
2. Подготовить марально (или как?) хостера :)

Подождите, народ, мать за ногу эти последовательности отработки. Получается тут проблема, как минимум с одним (любым) телодвижением по поводу подобных рассылок!?!

Но как то же должны решаться подобные задачи. Или разве нет похожих рассылок?...
 
Сверху