balboa 33 Posted October 2, 2018 Report Share Posted October 2, 2018 Всем привет Ищу php скрипт/планировщик заданий для, запуска исполнения цепочки php скриптов - один за другим. Т.е чтобы запустив этот планировщик, далее цепочкой один за другим, исполнялись бы все что в задании. Т.е следующий не начнет исполнятся, пока не закончит предыдущий. Сейчас ежедневно исполняется 11 скриптов, запускаю их через Cron по таймеру, но это не всегда удобно, т.к бывает, что время на выполнение не всегда одинаковой (разный объем информации) +/- 5-10 мин. и получается, так, что следующий скрипт начинает работать до завершения предыдущего. Quote Link to post Share on other sites
Beauty 172 Posted October 2, 2018 Report Share Posted October 2, 2018 2 часа назад, balboa сказал: Всем привет Ищу php скрипт/планировщик заданий для, запуска исполнения цепочки php скриптов - один за другим. Т.е чтобы запустив этот планировщик, далее цепочкой один за другим, исполнялись бы все что в задании. Т.е следующий не начнет исполнятся, пока не закончит предыдущий. Сейчас ежедневно исполняется 11 скриптов, запускаю их через Cron по таймеру, но это не всегда удобно, т.к бывает, что время на выполнение не всегда одинаковой (разный объем информации) +/- 5-10 мин. и получается, так, что следующий скрипт начинает работать до завершения предыдущего. в первом скрипте в конце инклудите второй, во втором инклудите третий таким образом пока 1 не закончит выполнение и не заинклудит следующие то продолжения не будет Quote Link to post Share on other sites
rossoman 0 Posted January 22, 2019 Report Share Posted January 22, 2019 On 02.10.2018 at 9:54 PM, balboa said: Всем привет Ищу php скрипт/планировщик заданий для, запуска исполнения цепочки php скриптов - один за другим. Т.е чтобы запустив этот планировщик, далее цепочкой один за другим, исполнялись бы все что в задании. Т.е следующий не начнет исполнятся, пока не закончит предыдущий. Сейчас ежедневно исполняется 11 скриптов, запускаю их через Cron по таймеру, но это не всегда удобно, т.к бывает, что время на выполнение не всегда одинаковой (разный объем информации) +/- 5-10 мин. и получается, так, что следующий скрипт начинает работать до завершения предыдущего. все скрипты кладете в bash скрипт (.sh) и sh в крон каждую минуту, используя lockf выглядеть будет так: * * * * * /usr/bin/lockf -kt0 /tmp/test.lock /bin/sh /home/domen/cron/test.sh таким образом ваш скрипт будет пытаться отработать каждую минуту, но не запустится если не выполнился предыдущий Quote Link to post Share on other sites
chromov 11 Posted January 23, 2019 Report Share Posted January 23, 2019 Создаем папочку lock. Запускаем все скрипты сразу (каждый час). Для запуска каждую минуту нужно додумать систему локов. По окончанию первого скрипта кладем в lock файлик-метку, например finish1. При этом, второй уже будет запущен и если нет файла finish1 будет спать 3-5 секунд (sleep(3)) и заного проверять наличие finish1 и так в цикле, пока не появится finish1. Как только появится файл - скрипт начнет свою работу, при этом удалит finish1. После чего закончил работу второй скрипт кладем файл finish2. Как только появляется finish2, начинает работать (точнее, начинает выполнять основной функционал, потому что он и так будет запущен, только будет спать, чекая каждые 3 секунды нужный файл) третий скрипт. И т.д. В конце удаляем файл finishX. Единственная проблема, в этом случае, если нужно больше 1 часа для выполнения всей цепочки. Тогда нужно думать продумать систему локов так, чтобы цепочка не запускалась заного, пока не отработает предыдущая. Прелесть этого подхода в том, что скрипты будут выполняться с интервалом максимум X секунд, а X настраиваете вы. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.