問題タブ [objectcache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
68 参照

c# - 後でアクセスできるように System.Timers.Timer を ObjectCache に保存できますか?

仕事のために次の要件を実装する必要があります。

  1. ユーザーが新しいアプリケーションを開始すると、5 分間のタイマーが開始されます。
  2. 5 分が経過する前にユーザーがアプリケーションを編集すると、タイマーはキャンセルされます。
  3. タイマーが完了すると、当社にメールが送信されます(「アプリケーションは作成されましたが放棄されました」)。

このプロジェクトの Web サーバーは .NET MVC プロジェクトですが、ホーム コントローラー以外のすべてのコントローラーは、System.Web.Mvc.Controller ではなく System.Web.Http.ApiController から継承されます。フロントエンドはAngular 6です。

5 分後に「メール送信」メソッドを実行する 5 分間のタイマーを開始するのは簡単に思えます。タイマーが切れる前にユーザーがアプリケーションを編集した場合にタイマーをキャンセルする機能を実装する方法に行き詰まっています。アプリケーションを起動するコマンドとその後の編集は、API への個別のクエリとして送信されるため、呼び出しごとに状態が維持されることはありません。

私の現在のアイデアは、アプリケーションの起動時に System.Timers.Timer を介してタイマーを作成し、その特定のアプリケーションを表す一意の ID の下でタイマーを ObjectCache に保存することです。次に、編集アクションが呼び出されたときに、キャッシュをチェックして、編集中のアプリケーションと一致するタイマーが保存されているかどうかを確認し、保存されている場合はタイマーをキャンセルします。そのような電話が 5 分以内に来ない場合、タイマーが起動し、電子メールが送信されます。

これは機能しますか?(タイマーにアクセスしてキャンセルできることと、タイマーがキャンセルされない場合に期待どおりに起動できることの両方?) この質問の範囲が曖昧であることをお詫びします。タイマーの操作に慣れていないため、検索が妨げられている可能性がありますが、Google や検索 SO はうまくいきませんでした。

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