Такая ситуация. Есть сервер на 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 секунд в среднем.
Возможная причина в том, что файл все еще остается открытым для записи при завершении первого скрипта. Я бы убедился что все ресурсы освобождены, fclose вызван. А в конце еще бы поставил sleep() для верности.
Также можно разнести эти две задачи во времени. Скажем по четным минутам генерировать, по нечётным - отправлять. То есть сделать два задания в cron.
*/2 * * * * /generate
*/2 * * * * sleep 60; /send
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
при отправки GET-запроса возвращаются вопросы вместо кириллицыКак можно исправить? Использую SLIM в PHP Ответ приходит в таком виде:
Пользователь подписывается на определенные категории новостейНапример, на чемпионат Эстонии и на клуб Челси
Начал догадываться, что это из-за того, что на странице submit изначально не лежал, по этому и не случаеться событиеНо всё же решил спросить, как...
Привык к процедурному стилю, сейчас со скрежетом перехожу на ООП, помогитеПравильно ли я написал код так все работает, но мне кажется нужно...