time — команда Cron запускает скрипт php каждые 60 секунд, а затем перегружает все

У меня есть задача в cron: каждые 3 часа запускать php скрипт.

Я также пытался использовать WGET и PHP, но у меня возникла та же проблема. Иногда скрипт работает более 2 минут, но в основном 30 секунд. И если время выполнения больше 60 секунд, оно сбрасывается (504 пути) и cron запускает этот скрипт снова. И потом снова и снова. Фатальная перегрузка через несколько часов.

Я пробовал это с огромным количеством другого синтаксиса, но не получилось:

Как я могу управлять командой только с 1 попыткой запустить мой скрипт? Мне не нужно, чтобы он запускался миллион раз за каждые 60 секунд. Какие-нибудь ограничения?

Может быть, я могу ограничить / уменьшить время выполнения до 20 секунд, чтобы предотвратить запуск любого неподходящего сценария. Мне просто нужно запустить скрипт, мне не нужна система, чтобы ждать в любое время, скрипт каким-либо образом завершает задачу.

-1

Решение

Вы можете установить максимальное время выполнения прямо в скрипте php с помощью set_time_limit ( int $seconds );
узнать больше Вот

0

Другие решения

Прежде всего, wget предложение плохое. Если вы собираетесь использовать скрипт PHP для задачи cron, лучше запустить его как скрипт командной строки, запустив его напрямую и не через веб-сервер.

Предполагая, что вы не полагаетесь на информацию о сервере или переменные GET / POST в вашем скрипте: вы пробовали запустить его один раз вручную? Что-то странное происходит, когда вы это делаете?

Простая запись в crontab, подобная приведенной ниже, будет запускать ваш скрипт только раз в три часа:

* */3 * * * php /path/to/script.php
0

Если вы хотите гарантированно избежать одновременного запуска двух скриптов, вам следует использовать какую-то блокировку, например, простейшая блокировка файла с стадо

0
По вопросам рекламы [email protected]