Очередность выполнения cron команд

193
25 июня 2018, 03:20

Такая ситуация. Есть сервер на Linux. Там реализована генерация .txt файла и отправка этого файла на другой сервер. Все это выполняется каждый 3 минуты, с помощью команды в планироващике (cron):

php /var/www/www-root/data/www/generation-txt.php; sh /var/www/www-root/data/www/otpravka.sh

То есть по идеи сразу должен выполниться скрипт generation-txt.php который запишет нужную информацию из базы mysql в txt файл, и только потом перейдем к выполнению второй команды(отправки файла на другой сервер), которая прописана в otpravka.sh

И все почти хорошо. НО, бывают такие случаи когда txt файл сгенерировался не до конца (не всю информацию записал) и уже отправляет файл на другой сервер, то есть выполняется вторая команда. Таким образом получается на другом сервере не полный txt файл, где нет части информации. А если открыть через несколько секунд этот-же сгенерированный txt файл на том сервере где он создается - он уже будет полный.

Почему так происходит и как это решить? чтобы отправляло на другой сервер файл только после того как скрипт его сгенерировал.

P.S. время выполнения php скрипта генерации файла может быть разное, от 7 до 30 секунд в среднем.

Answer 1

Возможная причина в том, что файл все еще остается открытым для записи при завершении первого скрипта. Я бы убедился что все ресурсы освобождены, fclose вызван. А в конце еще бы поставил sleep() для верности.

Также можно разнести эти две задачи во времени. Скажем по четным минутам генерировать, по нечётным - отправлять. То есть сделать два задания в cron.

*/2 * * * * /generate
*/2 * * * * sleep 60; /send
READ ALSO
Возвращаются вопросы в json

Возвращаются вопросы в json

при отправки GET-запроса возвращаются вопросы вместо кириллицыКак можно исправить? Использую SLIM в PHP Ответ приходит в таком виде:

155
Повторяются записи при запросе. SQL. PHP

Повторяются записи при запросе. SQL. PHP

Пользователь подписывается на определенные категории новостейНапример, на чемпионат Эстонии и на клуб Челси

177
При нажатии на submit не происходит перезагрузки страницы

При нажатии на submit не происходит перезагрузки страницы

Начал догадываться, что это из-за того, что на странице submit изначально не лежал, по этому и не случаеться событиеНо всё же решил спросить, как...

209
Правильно сделать ООП

Правильно сделать ООП

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

159