前提・実現したいこと
PHPでメールの一斉配信システムを作っており、送信日時を指定したメールが、その日時を過ぎた時点で送信される機能を実装しようとしております。
発生している問題・エラーメッセージ
送信用のプログラムをphp作成しましたが、そのプログラムを定期的に作動させる仕組みをどのように実現すれば良いか判らず詰まっています。
補足情報
送信用のファイルは、以下のような形で、5分ごとにリロードと処理を繰り返します。ブラウザでファイルを開いている間は半永久的に動作しますが、当然ブラウザを閉じると処理が止まってしまいます。
- ブラウザでsend.phpファイルを開く
- DB(MySQL)からメール情報を取得し、送信予約フラグの立ったデータがあれば現在日時と比較する
- 現在日時 > 予約日時 であればメール送信し、DBのメール情報にて送信予約フラグを解除する
- 予約日時 > 現在日時 であれば5分間sleepの後にリロードする
ブラウザを閉じても、または ブラウザでファイルを開かなくても動作が継続する方法はあるのでしょうか?
また、本件について調べる中で、cronというものの存在を知りました。これを使うことで実現できそうではありますが、学習の敷居が高く感じられることと、システムの早期完成を優先したいため、phpで実現する方法があるのであれば知りたいと考えています。
勉強不足でして、質問に至らない点が多いかと思いますが、ご教示いただけますと幸いです。