PHP Добавление записи в бд через интервалы автоматически
Мне нужно сохранить данные, получаемые из другого источника (не форма) в бд через определенное кол-во времени.
Первое решение, о котором я подумал - это при заходе пользователя на страничку запускать цикл, который это сделает, но тут есть проблемы:
- Пользователей на страничке может быть слишком много (но я не знаю, как хорошо это будет работать)
- и пользователей может вовсе не быть (ночью к примеру, соответственно данные добавляться не будут)
Второе, о чем я подумал - это постоянное исполнение скрипта php на сервере, но погуглив, я не нашел четкого объяснения как это сделать, к тому же не могу понять, как это будет работать и будет ли серьезно нагружать сервер.
Вопрос: как собственно мне реализовать эту задачу?
Ответы (2 шт):
Самый распространеный и надежный способ это с помощью CRON. Прочитать подробнее и прочую документацию можно тут и тут. А также советую поискать конкретные примеры под ваши задачи и идеи на использование связки CRON и PHP.
MySQL имеет свой собственный планировщик. Event Scheduler. Именно его следует использовать, а не городить костыли из внешних планировщиков и скриптов.
В нужное время и/или с нужной периодичностью (да хоть ежесекундно!) выполняется задание, которое собственно и осуществляет выполнение всех требуемых действий. И ему параллельно на всё, что происходит снаружи. Само собой, в выполняемой процедуре можно предусмотреть реакцию на любые внешние и внутренние обстоятельства.