私は現在電子商取引サイトで作業していますが、実装方法がわからないという1つの機能があります。ほとんどの場合、カートに商品を追加して購入するだけですが、これはおそらく最も単純なワークフローです。私は何を求めているのかは少し異なります。購入する製品に期限がある場合はどうなりますか?私はいくつかのサイトは、サッカーマネージャーのような製品を購入する正確な時間制限を与えることを意味し、あなたは永遠に製品を保持することはできませんこれらのサイトでは、それの15分の制限があり、その期間で購入しない場合は、あなたのカートから解放される。 (そしておそらく他の誰かがそれに飛びつくでしょう)ASP.NET MVC 3サイトでバックグラウンドジョブを実行する方法は?
今、ASP.NET MVCプログラマとして、私はこの機能を実装したいと思いますが、私が言ったように、私はそれを行う方法がわかりません。私はカートにアイテムを追加するときに、時間(ItemAddedAtのようなもの)を保持する必要があると思います。そのアイテムをx分後にリリースする必要があり、その製品をリリースするのにx分後に実行する必要があります。グローバルに考えると、私はサービスを必要と思う、私はアイテムを追加すると、私はまた、このサービスに加入する必要があり、サービスはバックグラウンドでタイマー/ジョブを実行します。私が知らない/経験がない部分は、ASP.NET MVCプロジェクトでこれを行う方法ですが、そこにはサンプルプロジェクト、記事、ライブラリなどがありますか?
私のロジックがこの問題に適しているかどうかは分かりませんが、可能であれば、いくつかの指針が必要です。
まずは、詳細な説明のおかげで^^ 私はWindowsタスクスケジューラを好まないと思います。私がスケジューラを使っていれば、非常に短期間で有効期限と次回の予定実行時間との間には大きな時間差があります。 IMHO正確なトリガーを提供し、簡単に実装できるように見えるので、2番目のソリューションはもっとエキサイティングですが、私の考えではこのようなソリューションで使用するには十分信頼できるCacheItemRemovedCallbackですか? –
そのような再帰的な実装も同様に機能するかもしれませんが、私はすぐにこのケースでコールスタックサイズを心配し始めました –
@ArtemNikolov実際には、まったく同じ理由でこのコードを使用しました。株式を解放する)、それは約4年間実行されているので、私はそう思います:) – salgiza