0

ユーザーが自分の Web サイトでオークションを開始できるように取り組んでいますが、オークションをアクティブから「非アクティブ」に更新する方法がわかりません。

データベースでは、すべてのオークションに「アクティブ」と呼ばれる行があります

"active=1"      Means the auction is active
"active=2"      Means the auction is NOT active.

endTime に達したら、オークションをアクティブ = 1 からアクティブ = 2 に更新する必要があります。これは、毎分 1 回 cron ジョブを実行するのが最適ですか? または、毎分実行すると、サイトの速度が大幅に低下しますか。

それとも、このタスクを実行するために cron ジョブをまったく使用すべきではないのでしょうか?

「今すぐ購入」の部分は簡単です。誰かがアイテムをすぐに購入すると、すぐに active=2 に設定されます。

しかし、EndTime に達したら、オークションを active=1 から active=2 に自動的に更新する方法がわかりません。

また、私のウェブサイトはphp/mysqlで作成され、Linuxランプ@ Ubuntuサーバー12.04で実行されています。

ここには、ubuntu での cron ジョブをカバーするスタックオーバーフローに関する優れたガイドがたくさんあるようですが、優れたガイドがある場合は、それも投稿してください :)

ありがとうございました、

4

1 に答える 1

2

cron ジョブを使用しないでください。ロジックをビューに配置します。

create view vw_auctions as
    select a.*,
           (case when enddatetime >= now() then 2 else 1 end) as ActiveFlag
    from auctions;

次に、テーブルへのすべてのアクセスはビューを介して行う必要があります。ユーザーが実際にテーブルを変更している場合は、その機能をストアド プロシージャにラップします。

于 2013-08-18T20:45:55.120 に答える