Web で検索しましたが、どうやらユーザーの操作なしで php スクリプトを起動する方法がないようです。
Cron を推奨するアドバイザーはほとんどいませんが、これが正しい方法かどうかはわかりません。
ebayと同じようにオークションができるサイトを作っています。一定の時間が経過すると、オブジェクトは利用できなくなり、オークションは終了したと見なされます。
データベースと自動的に対話する方法を知りたいです。
Web で検索しましたが、どうやらユーザーの操作なしで php スクリプトを起動する方法がないようです。
Cron を推奨するアドバイザーはほとんどいませんが、これが正しい方法かどうかはわかりません。
ebayと同じようにオークションができるサイトを作っています。一定の時間が経過すると、オブジェクトは利用できなくなり、オークションは終了したと見なされます。
データベースと自動的に対話する方法を知りたいです。
オブジェクトが利用可能かどうかを知る必要があるのはいつですか? ->誰かが尋ねた場合のみ。
そして、探しているユーザー インタラクションが得られます。
たとえば、オークションの落札者にメールを送信したい場合は別です。この場合、オークションの終了時間にタイマーを設定する必要があります。これを行う最も簡単な方法は、cron ジョブです...
これを行うにはいくつかの方法があります。Cron はそれらの有効な 1 つであり、利用可能であればお勧めします。
もう 1 つは、オブジェクトに関連する各要求を処理する前に、それがまだ有効かどうかを確認することです。そうでない場合は、オンザフライでデータベースから削除して (または必要なことを何でもして)、別のページを表示できます。
また、時間ベースのスクリプトが最後に実行された時間をデータベースに保存し、その時間を現在の時間と比較することもできます。遅延が十分に大きい場合は、時間ベースのコードを実行できます。ただし、これは、複数のユーザーが同時にページにアクセスすると競合状態になりやすいため、スクリプトが複数回実行される可能性があります (おそらく、これはロックなどを使用して回避できます)。
シェルから cron ジョブを編集するには:crontab -e
10 分ごとに実行するジョブ:*/10 * * * * curl "http://example.com/finished.php"
かなり頻繁に実行されるcronジョブ、または起動時に開始して継続的に実行される(おそらく定期的にスリープする)プログラムが最適です。cronジョブでは、常に2つが実行されていないことを確認するか、一度に複数の作業が行われているかどうかが問題にならないように記述する必要があります。「常駐」プログラムでは、予期せずクラッシュした場合の処理方法を理解する必要があります。
ただし、実際にオークションを終了するためにこのメカニズムに依存することはありません。それはあなたのデータベース/ウェブサイトで処理されるべきです。つまり、オークションには終了時間があり、データベースの制約またはコードのいずれかにより、終了したオークションに入札できません。勝者と売り手への通知、支払いプロセスの設定などは、サービス/スケジュールされたタスクで実行できることです。
ハートビート/ボットの実装を使用する