Как выполнять PHP-код в Linux каждые 500 миллисекунд?

У меня есть http-сервер в Linux.
У меня есть некоторый PHP-код, который хранит переменные в кеше с использованием memcache , и я хотел бы выполнять этот код каждые 500 миллисекунд, когда сервер работает, даже после перезапуска сервера.
Я думал о внедрении службы, но у меня нет большого опыта работы с Linux, поэтому я не знаю, как это сделать, или даже если это правильный подход.
Я также слышал о cron-заданиях, но вижу, что они запускаются по минутам, а не по секундам.
Как я могу выполнять код PHP в Linux каждые 500 миллисекунд (код был бы полезен)?

1
задан 31 March 2016 в 18:58

2 ответа

Вы можете использовать для этого простой shell-скрипт:

#!/bin/bash
while true; do
    php /path/to/your/script.php & sleep 0.5s;
done

'& amp;' будет разворачивать процесс в фоновом режиме, поэтому время должно быть как-то точным. Я предполагаю, что через некоторое время он станет не синхронизированным с реальными часами, поэтому вы можете либо захотеть добавить метки времени к тому, что делает ваш скрипт, либо использовать подход с демоном, который использует системное время.

(Спасибо за ввод комментариев)

Я рекомендую добавить этот скрипт с помощью systemctl. Этот урок выглядит хорошо для этого: Создание моих собственных файлов службы systemd

0
ответ дан 31 March 2016 в 18:58

Так как Вы знакомы с PHP, можно сделать демона/сервис PHP. Я сделал сервис PHP для меня однажды, потому что я должен был пользоваться библиотекой, которая была доступна только в PHP. Это работает без любой проблемы много лет теперь.

Вот некоторая информация о демонах PHP:

0
ответ дан 1 April 2016 в 04:58
  • 1
    не работая, видя TypeError: супер () берет по крайней мере 1 аргумент (0 данных) – Rohith Yeravothula 27 January 2019 в 07:18

Другие вопросы по тегам:

Похожие вопросы: