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