2

この 2 つの問題を解決するには、どこから始めればよいか、何を使用すればよいかわかりません。

  1. ユーザー モデルとイベント モデル (サッカーの試合、カート レースなど) があります。そして、ユーザーが新しいイベントを作成したときに、他のユーザーに送信して電子メールを送信したいと考えています。

  2. 15 分ごとにチェックして、既に終了しているすべてのイベント (例: 昨日のイベント) をデータベースから削除する「何か」が必要です。

Ruby on Rails には Observer と Background Worker があることを知っていますが、MVC3 にはそのようなものがありますか? またはそれを達成する他の方法がありますか?

4

4 に答える 4

3

Those kind of tasks are better suited to be done from a separate process such as a Windows service. You should avoid using background tasks in your web applications.

于 2012-05-24T06:05:37.427 に答える
2

最小のアプリから大規模なエンタープライズ システムまで使用できるフル機能のオープン ソース ジョブ スケジューリング システムであるため、Quartz.netを堅牢なソリューションとして使用することをお勧めします。

詳細: asp.net mvc を使用したジョブ スケジューラ

于 2012-05-23T21:26:00.377 に答える
0

リスクがあるのは事実です。ただし、特にジョブ キューを実装するスケジュールが厳しい場合は、このオプションを使用する必要があります。Windows サービスに慣れていない場合は、それらについて学ぶ必要があります。

以下は私のために働いた(.NET 4.5.2)。コントローラーを呼び出すInitiateLongRunningProcessと、長時間実行されるプロセスが開始され、長時間実行されるジョブを待たずにビューに戻ります。

public ActionResult InitiateLongRunningProcess(Emails emails)
{
    if (ModelState.IsValid)
    {
       HostingEnvironment.QueueBackgroundWorkItem(ct => LongRunningProcessAsync(emails.Email));
       return RedirectToAction("Index", "Home");
    }

    return View(user);
}

Hanselman HowToRunBackgroundTasksInASPNETのこの素晴らしい記事を読んでください。

于 2015-01-09T16:06:36.900 に答える