3

Web プロジェクトの実行中にコードをループできるかどうか疑問に思っていました (私は MVC4 RC と C# を使用しています)。たとえば、エンティティ Factory があるとします。この工場では、1 時間ごとに椅子を作成しています。そのため、プロジェクトはサーバー上で実行中にこれを行う必要があります。ユーザーがウェブサイトにいるかどうかは関係ありません。これは可能ですか?そして、あなたはこれをどのようにしますか?

4

2 に答える 2

3

はい、これを行う方法があります。特定の有効期間で何かをキャッシュに入れ、OnCacheRemovedCallback に登録します。このコールバックで、やりたいことを行い、新しいアイテムをキャッシュに挿入します。チェーンを開始するには、起動時に insert6 が必要です。これは SO ( https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/を参照) によって行われるため、機能します。それは明らかに機能し、実用的なソリューションと呼ばれることがあります。

これをどうにかして「ハック」と考える人もいますが、私は、あなたが何をしているのか、なぜこれをしたいのかを正確に知らなければ、これをしない傾向があります. そのようなタスクを行うのは間違いなく芸術ではありません。


別のオプション (user1308743 がこれについて言及しています): 必要なことを実行する exe を作成し、1 時間ごとにタスク スケジューラから呼び出されるようにします。


少し異なるオプション: Windows サービスを記述してタイマーを実装するか、Quartz.NET などを使用してこの方法でジョブをスケジュールします。おそらく、最も多くの作業と最もエンタープライズが好きなソリューションですが、うまくいきます(このようなものを実装し、私がする必要があることの魅力のように機能します)。追加の値として、構成可能な方法でスケジュールを作成できます。


SOで別のオプションを見つけました:ASP .NETでの繰り返しタスク

于 2012-06-19T19:38:07.413 に答える
2

これはおそらく適切な方法ではありませんが、タスクを処理する EXE を作成し、サーバー上で実行したままにすることができます。

于 2012-06-19T19:31:54.043 に答える