この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 61378|答える: 6

[ASP.NET] asp.net 背景タスク Hangfire フレームワークチュートリアル

[リンクをコピー]
掲載地 2019/05/24 9:51:10 | | | |
Hangfireはほとんどの.NETプラットフォームで動作します:.NET Framework 4.5以降.NET Core 1.0以降、または に関連するものは何でも。 NET Standard 1.3互換プラットフォーム。 ASP.NET、ASP.NET Core、コンソールアプリケーション、Windowsサービス、WCF、NancyやServiceStackのようなコミュニティドライバーなど、ほぼすべてのアプリケーションフレームワークと統合できます。

適用可能なシナリオ:バックグラウンドは非同期でメールを送信し、できるだけ早くユーザーに返信します。 タスクのスケジュール実行、サイクル実行、時間のかかるタスクの非同期実行、タスクAの実行完了、その後のBタスクの実行、バッチ実行などが含まれます。
私が以前はこうやっていました:

c#はユニバーサルQueueHelperキューをカプセル化しています
https://www.itsvse.com/thread-5029-1-1.html
(出典:Architect_Programmer)


Windowsサービスなど他のプロセスを使わずに、ASP.NET アプリケーションにバックグラウンド処理を組み込むことができます。 ハングファイアのコードは展開準備完了予期しないプロセス終了、アプリケーションプールのリサイクル、再起動。 使用方法のため永続保存だから君がいるんだバックグラウンドジョブが失われることはありません

まず、レンダリングは以下の通りです。




上の写真はHangfireダッシュボードで、非常に便利でバックグラウンドタスクの状況を確認できますし、とても便利なので設定が必要です。

ダッシュボードのUIは、あなたがStartupクラスでHangfireを設定する際,ダッシュボードUI使えます

最初はHangfire Dashboardのダッシュボードを設定しておらず、以下のエラーが出ました:

アプリの読み込みを試みた際に以下のエラーが発生しました。
- OwinStartupAttributeを含むアセンブリが見つかりません。
- Startup または [AssemblyName] を含むアセンブリが見つからないこと。 スタートアップクラス。
OWINのスタートアップ検出を無効にするには、web.configに「false」の値を付けたappSetting owin:AutomaticAppStartupを追加してください。
OWINのスタートアップアセンブリ、クラス、またはメソッドを指定するには、web.configにappSetting owin:AppStartupを完全限定のスタートアップクラスまたは設定メソッド名と組み合わせて追加してください。



解決:

Global.asax.csベースの初期化を使用する場合、OWINのスタートアップクラス検出を無効にする必要があるかもしれません。

本題に入り、チュートリアルは次のようになります。

1: フレームワークはハングファイアのニーズに応えるべきだ。私のプロジェクトは.net 4.6.2ですつまり、hangfireは通常通りインストールできます。.net 4.0プロジェクトは試す必要はありませんし、サポートされていません!

2: nugetコマンドは以下の通りです:

3: OWINスタートアップクラスは、ウェブアプリケーションのブートストラップロジックを一箇所にまとめることを目的としています。 Visual Studio 2013では、プロジェクトを右クリックして「Add/OWIN Startup Class」メニュー項目を選択することで追加できます。 以下に示すように:



プロジェクトのルートディレクトリに新しいStartup.csファイルを作成します。

4: 構成データベース接続文字列ここで使っているSQL Server 2012バージョンのweb.configの設定は以下の通りです:

5: Hangfireダッシュボードをフィルターに設定し、新しいフィルターを作成するHangfireAuthorizationFilter.csファイル。

デフォルトでは、Hangfireダッシュボードへのローカルアクセスのみが許可されています。 ダッシュボード認証はリモートアクセスを許可するように設定する必要があります。


6: Startup.csクラスの設定。コードは以下の通りです。


7: ウェブサイトプロジェクトの開始

Debugモードを押してF5アプリケーションを起動します(これはDebug.WriteLineメソッドの出力を確認する必要があります)。 次に、出力ウィンドウの次のメッセージを確認し、バックグラウンド処理が正常に開始されているか確認してください。



同時に、データベースにはさらに11のテーブルがあり、すべてのタスクが通常通り実行され、IISの再開やプロセス再起動によってタスクが失われないようにしています(下図参照)。



http://<your-web-app>/ハングファイア

記事の上部にあるレンダリングを見るには、ダッシュボードUIのURLをご覧ください。

付随する使用法

Fire-and-forget(公開/購読)

これは永続メッセージキューが処理する主なバックグラウンドタスクの種類です。 公開/サブスクライブタスクを作成すると、そのタスクはデフォルトのキューに保存されます(デフォルトキューは「Default」ですが、複数のキューに対応しています)。 複数の専任作業員がこのキューを傍受し、そこからタスクを取得しタスクを完了します。


遅延

特定のタスクの実行を遅らせたい場合は、以下のタスクを利用できます。 一定の遅延時間の後、タスクはキューに入り、公開/サブスクライブタスクのように実行されます。

ループ

周期性(時間、日など)でメソッドを呼び出すには、RecurringJobクラスを使います。 複雑なシナリオでは、CRON式を使ってタスク処理のスケジュール時間を指定できます。


連続

継続性は複数のバックグラウンドタスクを連携させることで複雑なワークフローを定義できます。


公式ドキュメントリンク:ハイパーリンクのログインが見えます。

(終わり)






先の:ビデオデータアルゴリズムがノートを共有する
次に:リクエスト中止:SSL/TLSのセキュアチャネルソリューションの作成に失敗
掲載地 2019/05/24 10:12:25 |
この投稿はYuAnによって2019年5月24日10時20分に最終編集されました。

良い記事を学んできました
掲載地 2019/05/24 10:12:46 |
サポート
掲載地 2021/09/17 21:59:44 |

サポート
掲載地 2022/09/26 22:20:45 |
サポート、使い方を学べば
掲載地 2022/11/12 19:02:23 |

サポート、使い方を学べば
掲載地 2023/03/25 9:45:31 |

サポート、使い方を学べば
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com