2

私はウェブサイトを書こうとしていますが、今は特定の方法を月に 1 回 (月末に) 実行する必要があります。

メソッドが であると想像してくださいMethod A()

毎月月末に実行したい。

それでは、どのように実行しますか?

アップデート:

ウェブサイトの使命は別のものです。ほんの一部ですが、これを行う必要があります。

わかりませんが、毎月の終わりにアプリケーションの開始時にメソッドを実行すると解決できると思いますが、その方法かどうかはわかりません。

4

2 に答える 2

4

ASP.NET MVC は、スケジュールされたタスクではなく、Web アプリケーションを作成するためのものです。

Web アプリケーションは、要求/応答システムとして設計されています。定期的に発生する必要があるバックグラウンド タスクには適していません。彼らはリクエストを受け取り、そのリクエストに応答して完了します。アイドル状態の間、Web アプリケーションは Web サーバーのリソース管理の対象となります。これには、次の要求を待つ間、アプリケーションを完全にシャットダウンすることが含まれる場合があります。

代わりに、Windows サービスまたはコンソール アプリケーション (Windows に付属しているものなどのタスク スケジューラによって呼び出される) のいずれかを使用する必要があります。これは、それぞれバックグラウンドで継続的に実行されるか、一定の間隔で実行されます。このアプリケーションは、その 1 つのメソッドを呼び出すだけで、非常に小さくすることができます。

要するに... ユーザーの要求に応じてコードを実行したい場合は、Web アプリケーションがその役割を果たします。ユーザーの要求に関係なく定期的にコードを実行したい場合は、スケジュールされたタスクが必要です。

于 2013-08-27T13:02:02.487 に答える
2

まあ、それはウェブサイトに属していないようです。つまり、ASP.NET 内でどこでも実行しないでください。おそらく、バック オフィス、またはバック エンドで実行されているサービス、データベース ジョブ、またはスケジュールされたタスクで実行する必要があります。しかし、仕事が 1 つしかない場合は、ボタンを押すとメソッド A() を呼び出すボタンを作成し、それを Web サイトのログイン部分に配置して、ソート権限チェックを使用して他の人がアクセスしないようにする方がおそらく簡単でしょう。正しい人がそれを押します。また、メソッド内にチェックを入れて、月に 1 回だけ実行されるようにすることもできます。Web サイトの残りの部分が使用されていることが確実な場合は、他のメソッドに CheckToSeeIfIShouldCallMethodA メソッドを追加できますが、これらはすべて、バックエンドで実行されるものよりも悪いオプションのように思えます。

于 2013-08-27T13:01:15.910 に答える