1

Hangfire をリモート SQL サーバーの SQL ストレージと共に使用し、既存の MVC サイトと一緒に実行しています。私のスタートアップ クラスは非常に単純です。

public void Configuration(IAppBuilder app) 
{
        app.UseHangfire(config =>
        {
            config.UseSqlServerStorage("MY_CONNECTION_STRING");
            config.UseServer();
        });
}

問題は、リモート サーバーへの接続が遅れると、MVC サイトの起動が遅れることです。致命的なエラーを含む、OWIN の起動中に何が起こっても、プロジェクトが要求に応答できるように、OWIN を非同期的に起動する方法はありますか?

4

1 に答える 1

0

Hangfire の初期化ロジックは専用スレッドで実行され、アプリケーションの起動時間を短縮します。したがって、UseServerメソッドは新しいスレッドのみを作成し、追加のロジックはありません。

UseSqlServerStorageメソッドはデータベースに接続して現在のスキーマをチェックし、必要に応じて自動移行を実行します (Hangfire.Schemaテーブルへの 1 つの単純なクエリ)。これはデフォルトの動作ですが、無効にすることができます:

var options = new SqlServerStorageOptions
{
    PrepareSchemaIfNecessary = false
};

var storage = new SqlServerStorage("<name or connection string>", options);

この手順を実行した後、Hangfire は起動時にデータベースに接続しません (他のクラスも接続しません)。ただし、リリース ノートには注意してください。データベース ストレージの変更に関する情報が含まれています。

于 2015-02-10T11:19:10.807 に答える