PHP Добавление записи в бд через интервалы автоматически

Мне нужно сохранить данные, получаемые из другого источника (не форма) в бд через определенное кол-во времени.

Первое решение, о котором я подумал - это при заходе пользователя на страничку запускать цикл, который это сделает, но тут есть проблемы:

  • Пользователей на страничке может быть слишком много (но я не знаю, как хорошо это будет работать)
  • и пользователей может вовсе не быть (ночью к примеру, соответственно данные добавляться не будут)

Второе, о чем я подумал - это постоянное исполнение скрипта php на сервере, но погуглив, я не нашел четкого объяснения как это сделать, к тому же не могу понять, как это будет работать и будет ли серьезно нагружать сервер.

Вопрос: как собственно мне реализовать эту задачу?


Ответы (2 шт):

Автор решения: reznikovkg

Самый распространеный и надежный способ это с помощью CRON. Прочитать подробнее и прочую документацию можно тут и тут. А также советую поискать конкретные примеры под ваши задачи и идеи на использование связки CRON и PHP.

→ Ссылка
Автор решения: Akina

MySQL имеет свой собственный планировщик. Event Scheduler. Именно его следует использовать, а не городить костыли из внешних планировщиков и скриптов.

В нужное время и/или с нужной периодичностью (да хоть ежесекундно!) выполняется задание, которое собственно и осуществляет выполнение всех требуемых действий. И ему параллельно на всё, что происходит снаружи. Само собой, в выполняемой процедуре можно предусмотреть реакцию на любые внешние и внутренние обстоятельства.

→ Ссылка