shell — запускать php скрипт каждые 5 секунд

Я знаю, что для запуска php-скрипта каждый раз (в секундах или минутах) мы можем использовать Cron (задание или вкладку), но cron имеет 60-секундную гранулярность, поэтому мы вынуждены иметь бесконечный цикл для запуска php-скрипта. Например, мы можем написать код ниже, чтобы вызвать его в верхней части скрипта:

#!/bin/bash
while [ true ]; do
#put php script here
done

но это нелогично, потому что мы должны изменить время выполнения php в php.ini, чтобы у нас было много проблем (безопасность, переполнение, …) на сервере. хорошо, что мы должны делать именно?
Мой вопрос заключается в том, как запускать php-скрипт каждые 5 секунд, у которого нет проблем во время выполнения php.

2

Решение

Используйте Cron Job Script. Получите 30-секундный интервал, вы можете отложить на 5 секунд:

-*/5-22 * * * sleep 5;your_script.php

Приведенный выше скрипт будет работать с 5 утра до 10 вечера

Другая альтернатива

You need to write a shell script like this that sleeps on the specified interval and schedule that to run every minute in cron:

#!/bin/sh
# Script: delay_cmd
sleep $1
shift
$*

Затем запланируйте запуск в cron с вашими параметрами: delay_cmd 5 параметров mycommand

3

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

 #!/bin/sh

#

SNOOZE=5

COMMAND="/usr/bin/php /path/to/your/script.php"
LOG=/var/log/httpd/script_log.log

echo `date` "starting..." >> ${LOG} 2>&1

while true

do

${COMMAND} >> ${LOG} 2>&1

echo `date` "sleeping..." >> ${LOG} 2>&1

sleep ${SNOOZE}

done

Вышеприведенный скрипт будет запускаться через второй интервал.
Это не будет работать PHP сценарий, когда он все еще обрабатывает, также сообщает о взаимодействии / ошибках внутри файла журнала.

1

Как насчет использования функции сна для задержки каждые 5 секунд

int sleep (int $ seconds) — задерживает выполнение программы на указанное количество секунд.

0

Я предпочитаю использовать сон в вашем PHP

    while( true ) {

// function();

sleep( 5 );

}

Вы можете остановить его через 1 минуту или что-то в этом роде и перезапустить с помощью cronjob. С помощью этого решения вы можете выполнять ваш скрипт каждую секунду после вашего последнего выполнения, и он работает не асинхронно.

Вы сохраняете ресурсы с этим решением, потому что php не нужно перезапускать все время …

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector