sql >> データベース >  >> RDS >> Mysql

cronジョブまたはPHPスケジューラ

    あなたのコンセプトを変える必要があると思います。

    PHPはジョブをスケジュールできず、MySQLもスケジュールできません。 MySQLのトリガーは、特定の時間ではなく、mysqlクエリが発生したときに実行されます。どちらでもない

    この制限は通常、Web開発では問題になりません。その理由は、PHPアプリケーションが出入りするすべてのデータを制御する必要があるためです。通常、これは、そのデータ、または他の形式をユーザー、または他のプログラムに表示するHTMLのみを意味します。

    あなたの場合、あなたはそれについてこのように考えることができます。締め切りは決まった日です。データとして扱い、データベースに保存することができます。期限が発生することは重要ではありませんが、データベースに送信したデータが正しく表示されることです。

    アプリケーションにリクエストがあった場合、締め切り日が過ぎているかどうかを確認し、過ぎている場合は、プロジェクトが閉じていることを表示するか、表示の直前にプロジェクトが閉じていることを更新します。

    PHPアプリケーションから独立してデータを更新する理由は実際にはありません。

    通常、スケジュールしたいのは、負荷の点でアプリケーションに影響を与えるジョブ、1回だけ実行する必要があるジョブ、または同時実行性や時間が問題となるジョブだけです。

    あなたの場合、それらのどれも当てはまりません。

    PS:PHPschedulerを試したことはありませんが、本当のスケジューラーではないと推測できます。 Cronは、特定のタスクの期限が切れるまでスリープし、タスクを実行してから、次のタスクの期限が切れるまでスリープするデーモンです(少なくとも現在のアルゴリズムではそれが実行されます)。 PHPは、特別なセットアップとして、ソケットとフォーク拡張機能なしではそれを行うことができません。したがって、PHPschedulerは、Webページをロードするたびに(PHPがページを実行するたびに)、タスクの日付が期限切れになっているかどうかをチェックするだけである可能性があります。これは、PHPSchedulerのオーバーヘッドなしで、プロジェクトの日付が期限切れになっているかどうかを確認するのと同じです。



    1. MariaDB JSON_TYPE()の説明

    2. MySQLの`unsigned`はどういう意味で、いつ使用するのですか?

    3. 秒なしでDateTime値データから抽出する方法

    4. MySQL8の新しいロールの使用