У меня есть http-сервер в Linux.
У меня есть некоторый PHP-код, который хранит переменные в кеше с использованием memcache , и я хотел бы выполнять этот код каждые 500 миллисекунд, когда сервер работает, даже после перезапуска сервера.
Я думал о внедрении службы, но у меня нет большого опыта работы с Linux, поэтому я не знаю, как это сделать, или даже если это правильный подход.
Я также слышал о cron-заданиях, но вижу, что они запускаются по минутам, а не по секундам.
Как я могу выполнять код PHP в Linux каждые 500 миллисекунд (код был бы полезен)?
Вы можете использовать для этого простой shell-скрипт:
#!/bin/bash
while true; do
php /path/to/your/script.php & sleep 0.5s;
done
'& amp;' будет разворачивать процесс в фоновом режиме, поэтому время должно быть как-то точным. Я предполагаю, что через некоторое время он станет не синхронизированным с реальными часами, поэтому вы можете либо захотеть добавить метки времени к тому, что делает ваш скрипт, либо использовать подход с демоном, который использует системное время.
(Спасибо за ввод комментариев)
Я рекомендую добавить этот скрипт с помощью systemctl. Этот урок выглядит хорошо для этого: Создание моих собственных файлов службы systemd
Так как Вы знакомы с PHP, можно сделать демона/сервис PHP. Я сделал сервис PHP для меня однажды, потому что я должен был пользоваться библиотекой, которая была доступна только в PHP. Это работает без любой проблемы много лет теперь.
Вот некоторая информация о демонах PHP: