Php выполнять скрипт каждую секунду

Работа скрипта каждую секунду

Вот собственно и вопрос, как мне сделать запуск скрипта каждую секунду. Просто на кроне это возможно лишь раз в минуту, облазил весть интернет, видел много способов, пробывал, но ответ так и не нашел. Мне нужно что бы скрипт работал, даже когда никого нету на сайте, это возможно?

Php выполнение скрипта каждую секунду
Здравствуйте, подскажите пожалуйста, как можно решить задачу: делаю интернет аукцион и после.

Запуск скрипта каждую секунду (cronjob)
Довольно давно есть у меня скрипт, который нужно запускать каждую секунду. Я, конечно, гуглил, но.

Каждую секунду по 1-3 пользователю — как они это сделали?
Всем привет. Каждую секунду по 1-3 пользователю, как сделать типа такого? Можно код. Спасибо.

Запуск php скрипта каждую минуту(например) OpenServer 5.2.2
нужно сделать запуск скрипта test.php каждую минут (каждый час, хоть как) пробовал делать так.

ЦитатаСообщение от edward_freedom Посмотреть сообщение

Тоесть если я сделаю бесконечный цикл и зайду 1 раз на эту страницу, закрою её, то она будет работать?

Эксперт JSЭксперт HTML/CSSЭксперт PHP

ЦитатаСообщение от Vitaliy5 Посмотреть сообщение

Тоесть если я сделаю бесконечный цикл и зайду 1 раз на эту страницу, закрою её, то она будет работать?

ЦитатаСообщение от Azdeman Посмотреть сообщение

Добавлено через 1 минуту

Огорчили( А какой выход есть?

на VPS будет работать? Других вариантов нету?

Эксперт PHP

Vitaliy5, то что тебе нужно называется демон, в гугле можно найти реализации демона на php

ЦитатаСообщение от Azdeman Посмотреть сообщение

ЦитатаСообщение от Vitaliy5 Посмотреть сообщение

Запускать раз в минуту скрипт с циклом, который выполняется 60 раз, с задержкой в 1 секунду после каждого прохождения

ЦитатаСообщение от TrustNo1 Посмотреть сообщение

Запускать раз в минуту скрипт с циклом, который выполняется 60 раз, с задержкой в 1 секунду после каждого прохождения

Добавлено через 50 секунд

ЦитатаСообщение от Jewbacabra Посмотреть сообщение

Vitaliy5, то что тебе нужно называется демон, в гугле можно найти реализации демона на php

Почитал про демона, нашел статью где запускается через консоль и т.п.. я так понимаю это нельзя сделать на обычном хостинге, нужен VPS, да?

ЦитатаСообщение от Vitaliy5 Посмотреть сообщение

А почему нет-то?)
Опишите задачу более подробно, откуда нам знать зачем вам каждую секунду запускать что-то

Эксперт PHP

ЦитатаСообщение от Vitaliy5 Посмотреть сообщение

Ну если шаред хостинг и есть крон ну пускай будет раз в 1, 5, 10 минут, не важно, по крону запускаться и циклично повторяться в течении определенного времени, потом умирать и заново запускаться по крону.

ЦитатаСообщение от TrustNo1 Посмотреть сообщение

А почему нет-то?)
Опишите задачу более подробно, откуда нам знать зачем вам каждую секунду запускать что-то

У меня есть нормальный крон, купленный.

Задача состоит в том, что скрипт каждую секунду проверяет значение из бд, если оно совпадает с текущем временем, он записывает определенному пользователю результат.

Тоесть если я буду запускать его каждых 10 минут в цикле 600 секунд со sleep в 1 секунду, то все будет хорошо работать?)

ЦитатаСообщение от Vitaliy5 Посмотреть сообщение

Тоесть если я буду запускать его каждых 10 минут в цикле 600 секунд со sleep в 1 секунду, то все будет хорошо работать?)

По чем крон нормальный купленный нынче?)

Эксперт PHP

ЦитатаСообщение от Vitaliy5 Посмотреть сообщение

оесть если я буду запускать его каждых 10 минут в цикле 600 секунд со sleep в 1 секунду, то все будет хорошо работать?)

только учти что он будет работать 600 секунд + 600*время одной итерации, то есть больше 10 минут. Нужно еще контролировать время, когда запустится следующий скрипт по крону.

ЦитатаСообщение от TrustNo1 Посмотреть сообщение

По чем крон нормальный купленный нынче?)

Добавлено через 49 секунд

ЦитатаСообщение от Jewbacabra Посмотреть сообщение

только учти что он будет работать 600 секунд + 600*время одной итерации, то есть больше 10 минут. Нужно еще контролировать время, когда запустится следующий скрипт по крону.

Автор FAQ

Как вариант внутри скрипта через exec запускать себя же после определённого времени (microtime) и тут же завершаться, таким образом он будет бесконечно работать будучи запущенным один раз
Но для подстраховки можно поставить его все же на крон, а в начало скрипта вставить проверку чтобы второй экземпляр не запускался. Таким образом если скрипт вдруг упадёт, то по крону автоматом восстановится

ЦитатаСообщение от insideone Посмотреть сообщение

Как вариант внутри скрипта через exec запускать себя же после определённого времени (microtime) и тут же завершаться, таким образом он будет бесконечно работать будучи запущенным один раз
Но для подстраховки можно поставить его все же на крон, а в начало скрипта вставить проверку чтобы второй экземпляр не запускался. Таким образом если скрипт вдруг упадёт, то по крону автоматом восстановится

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

Добавлено через 58 минут

ЦитатаСообщение от insideone Посмотреть сообщение

Как вариант внутри скрипта через exec запускать себя же после определённого времени (microtime) и тут же завершаться, таким образом он будет бесконечно работать будучи запущенным один раз
Но для подстраховки можно поставить его все же на крон, а в начало скрипта вставить проверку чтобы второй экземпляр не запускался. Таким образом если скрипт вдруг упадёт, то по крону автоматом восстановится

Источник

EvTimer::__construct

Если время повтора равно 0.0 , то он будет автоматически остановлен после истечения времени ожидания. Если положительное, таймер будет автоматически настроен на повторный запуск каждые повторяющиеся секунды, пока не будет остановлен вручную.

Пользовательские данные, связанные с наблюдателем.

Примеры

Пример #1 Простые таймеры

// Создаёт и запускает таймер через 2 секунды
$w1 = new EvTimer ( 2 , 0 , function () echo «2 секунды прошло\n» ;
>);

// Создаёт и запускает таймер через 2 секунды, повторяя каждую секунду
// пока мы не остановим его вручную
$w2 = new EvTimer ( 2 , 1 , function ( $w ) echo «вызывается каждую секунду, запускается через 2 секунды\n» ;
echo «итерация color: #007700″>, Ev :: iteration (), PHP_EOL ;

// Останавливаем наблюдателя после 5 итераций
Ev :: iteration () == 5 and $w -> stop ();
// Останавливаем наблюдателя, если дальнейшие вызовы вызовут более 10 итераций
Ev :: iteration () >= 10 and $w -> stop ();
>);

// Создаём остановленный таймер. Он будет неактивным, пока мы не запустим его сами
$w_stopped = EvTimer :: createStopped ( 10 , 5 , function( $w ) echo «Callback-функция таймера, созданного как остановленный\n» ;

// Останавливаем наблюдателя после 2 итераций
Ev :: iteration () >= 2 and $w -> stop ();
>);

// Цикл до вызова Ev::stop() или остановки всех наблюдателей
Ev :: run ();

// Запускаем и смотрим, работает ли он
$w_stopped -> start ();
echo «Запустили одну итерацию\n» ;
Ev :: run ( Ev :: RUN_ONCE );

echo «Перезапустили второй наблюдатель и пробуем обработать те же события, но не блокируем\n» ;
$w2 -> again ();
Ev :: run ( Ev :: RUN_NOWAIT );

$w = new EvTimer ( 10 , 0 , function() <>);
echo «Запуск заблокированного цикла\n» ;
Ev :: run ();
echo «END\n» ;
?>

Результатом выполнения данного примера будет что-то подобное:

2 секунды прошло вызывается каждую секунду, запускается через 2 секунды итерация = 1 вызывается каждую секунду, запускается через 2 секунды итерация = 2 вызывается каждую секунду, запускается через 2 секунды итерация = 3 вызывается каждую секунду, запускается через 2 секунды итерация = 4 вызывается каждую секунду, запускается через 2 секунды итерация = 5 Запустили одну итерацию Callback-функция таймера, созданного как остановленный Перезапустили второй наблюдатель и пробуем обработать те же события, но не блокируем Запуск заблокированного цикла вызывается каждую секунду, запускается через 2 секунды итерация = 8 вызывается каждую секунду, запускается через 2 секунды итерация = 9 итерация каждую секунду, запускается через 2 секунды итерация = 10 END

Смотрите также

Источник

Как я могу запускать php-скрипт каждую секунду?

В настоящее время я пишу онлайн-игру. Теперь я должен проверить, произошло ли событие (проверка метки времени в базе данных) и в зависимости от того, какие действия выполняются. Я должен проверять событие каждую секунду.

Я хотел использовать cronjob, но с помощью cron вы можете запускать скрипт только каждую минуту.

Моя идея состояла в том, чтобы использовать cron и loop 60 раз в моем PHP-скрипте. Но я думаю, что это не лучшее решение.

Итак, каков наилучший способ запуска скрипта каждую секунду?

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

Вероятно, вы должны запустить сценарий один раз и использовать цикл с задержкой для достижения желаемого времени. Боковое преимущество заключается в том, что это более эффективно, и вам нужно будет только открыть ресурсы (то есть базы данных) один раз.

Вы не должны этого хотеть: P. Ни один хост не примет ваш cronjob, который работает каждую секунду каждую минуту? Вы можете сэкономить время, которое оно запустило в базе данных, а в следующий раз, когда вы запустите, подсчитайте время между обеими запусками и сделайте необходимые вычисления. каждая секунда – очень плохая идея.

Я искал лучшее решение, но кажется, что моя первая идея с чистым кодом – лучшее решение.

$total_time = 0; $start_time = microtime(true); while($total_time < 60) < //DoSomethingHere; echo $total_time."\n"; //sleep(5); $total_time = microtime(true) - $start_time ; > 

добавьте это в crontab для запуска каждую минуту.

Источник

Запуск PHP скрипта каждую секунду

Здравствуйте.
Есть такая задача, запускать скрипт PHP каждую секунду (для торговли на криптовалютной бирже).
Немного погуглил и нашел кое-что
https://askubuntu.com/questions/800/how-to-run-scripts-every-5-seconds
http://www.cyberforum.ru/php-beginners/thread721682.html
В целом я понимаю так, что использовать бесконечный цикл while не очень разумное решение, так команды могут пересекаться.
На мой взгляд лучшее решение такое: в панели хостинга создаю крон ежеминутный. И к нему подвешиваю файл:

(sleep 1 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 2 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 3 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 4 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 5 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 6 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 7 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 8 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 9 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 10 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 11 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) & (sleep 59 && php -q /var/www/binance/wp-content/themes/sparkling/inc/mycron.php) &

Однако мешает простое непонимание правильности написания bash скриптов.
Пожалуйста, напишите за меня тот файл, котрый будет вызываться ежеминутным кроном.
И заодно. Правильно ли то, что такое решение лучше, чем через while ?
Спасибо!

Источник

Читайте также:  Java thread error handler
Оцените статью