問題タブ [hangfire]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2457 参照

c# - Hangfire 構成と Ninject 構成

Ninject を使用する MVC 5 アプリケーションがあり、それに Hangfire を追加しています。

Ninject を追加したときはNinjectWebCommon、構成が簡単な nuget パッケージを使用しました。したがって、今のところ Ninject はNinjectWebCommon、標準カーネルを作成してバインディングを追加するクラスを通じて構成されています。

さらに、カーネルの作成時にロードするカスタム モジュールをいくつか作成しました。

Ninject Web Common はWebActivatorExクラスを通じて登録されます

この問題は、Hangfire を作成して Ninject 構成を表示する方法に関連しています。パッケージを見れHangfire.Ninjectば読める

このパッケージは、IGlobalConfiguration インターフェイスの拡張メソッドを提供します。

var kernel = new StandardKernel(); GlobalConfiguration.Configuration.UseNinjectActivator(kernel);

今私の質問は次のとおりです。

  • このインターフェイスのためIGlobalConfiguration、Hangfire Ninject 構成を OWIN スタートアップ メソッド内 (Hangfire 構成が既に配置されている場所) に追加する必要があります。現在の Ninject カーネル (NinjectWebCommon が構成したもの) を取得するにはどうすればよいですか?
  • 実行順序はどうですか?WebActivatorEx実行は OWIN の起動前ですか、それとも起動後ですか?
  • 構成を 2 回実行しようとするとどうなりますか?

より一般的には、2 つの間で Ninject 構成を共有するにはどうすればよいですか?

0 投票する
1 に答える
436 参照

c# - Hangfire + Crystal Reports メール?

私は、特定のレポートを毎日作成し、リスト内の多数の人に電子メールで送信できるようにしようとしています。

Hangfire を定期的なジョブでテストしましたが、うまく機能します。それは問題ではありません。しかし、既存の Crystal Report ファイル (.rpt) からレポートを作成しようとしています。基本的に、このジョブが実行されると、コードがレポートを作成し、指定されたパスのディスクに PDF として保存し、それを添付ファイルとして電子メールで送信できるようにしたいと考えています。そのため、Web ページでレポートを表示できる必要はありません。コード ビハインドでレポートを生成し、PDF として保存し、保存後にコード ビハインドから電子メールで送信するだけです。

私が抱えている問題は、クリスタルレポートの実際の生成と保存に関係しています。ところで、テストで Excel ファイルを生成していますが、実際のレポートでは PDF に変更します。これは、レポートを生成するためにこれまでに持っているものです。

このコードは、Web アプリケーションの global.asax ファイルの Application_Start で呼び出されるメソッドにあります。アプリケーションを実行すると、コード内のパスが正しいことがわかっているにもかかわらず、Hangfire ダッシュボードで失敗したジョブの下を見ると、ジョブが失敗し、次のエラーがスローされます。

System.IO.FileNotFoundException ファイルまたはアセンブリ 'App_global.asax.twm32qri、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

System.IO.FileNotFoundException: ファイルまたはアセンブリ 'App_global.asax.twm32qri, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。ファイル名: 'App_global.asax.twm32qri, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean System.RuntimeTypeHandle.GetTypeByName(文字列名、ブール型 throwOnError、ブール型 ignoreCase、ブール型 ReflectionOnly、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、ブール型 loadTypeFromPartialName) で System.Type.GetType(文字列型名、

WRN: アセンブリ バインディングのログがオフになっています。アセンブリ バインド エラーのログを有効にするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) を 1 に設定します。この機能をオフにするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] を削除します。

編集:

私も取得している別のエラーがあります。これは、レポート ファイルの読み込みと関係があります。

Failed ジョブの実行中に例外が発生しました。CrystalDecisions.CrystalReports.Engine.LoadSaveReportException

レポート ファイルのパスが無効です。

CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: レポート ファイルのパスが無効です。CrystalDecisions.CrystalReports.Engine.ExceptionThrower.ThrowEngineException(String messageID, EngineExceptionErrorID id) で CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String, OpenReportMethod openMethod filename, Int16 parentJob) で CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport() でCrystalDecisions.CrystalReports.Engine.ReportDocument.SetDatabaseLogon(String user, String password)パス\Global.asax.cs:line 98の Intranet.Global.GenerateReport() で

0 投票する
1 に答える
1689 参照

hangfire - Hangfire と Redis を使用して、キー ハッシュを使用してジョブをさまざまな Redis サーバーに分割する簡単な方法はありますか?

現在 MSSQL で Hangfire を使用しており、Redis に移行してタスクのスループットを向上させたいと考えています。

キー ハッシュによるシャーディング (パーティショニング) は非常にシンプルで、スケーラブルで、保守も簡単です。現在、Redis クラスターにアクセスできません。したがって、満たす必要がある要件は 2 つあります。

  • 構成ファイルを介して Hangfire に渡された Redis サーバーのリストを用意します。
  • 指定されたキーが予測どおりにいずれかのサーバーに送信されるようにします (Memcached と同様)。

そうすれば、「n」個の Redis サーバー間で任意の数のジョブを分割できます。

Hangfire には、ストレージとジョブという 2 つの部分があることに気付きました。これらの 2 つのコンポーネントが Redis シャード環境でどのように機能するのか興味があります。

Twemproxy などのサードパーティ製コンポーネントがこれらの懸念に役立つことはわかっていますが、キーハッシュのアプローチは非常に単純なので、Twemproxy を実装する前にその手段を使い果たすと思いました。

ありがとう!

0 投票する
0 に答える
204 参照

hangfire - ハングファイア ジョブ: 起動しても実行されず、ステータスは成功のままです

Hangfire を使用して実行する特定のジョブがあり、それは実行されず、成功を返します。例外は表示されず、成功に直行するだけです。何が問題なのか:

以下は関数のシグネチャです。

0 投票する
3 に答える
5456 参照

asp.net - Hangfire にはアクティブなサーバーがありません

ASP MVC アプリケーションを発行した後、Hangfire ダッシュボードに、アクティブなサーバーがないと表示されます。DB で Hangfire のテーブルを再起動、再構築、削除しようとしましたが、成功しませんでした。OWIN スタートアップ クラス:

0 投票する
1 に答える
872 参照

hangfire - Hangfire は定期的なジョブをキューに入れます

hangfire を使用して定期的なジョブを実行しています。私の仕事は、データベースから現在のデータを取得し、アクションを実行し、処理されたレコードにトレースを残します。この 1 分間にジョブが実行されなかった場合、次の 1 分間に 2 回実行する必要はありません。

どういうわけか、定期的なジョブ (1 分周期) が何千もキューに入れられ、実行されませんでした。IIS を再起動すると、すべてを一度に実行して DB を詰まらせようとしました。

実行されない問題を解決する以外に、それらがキューに入るのを止める方法はありますか?

0 投票する
1 に答える
253 参照

mongodb - Hangfire.Mongo を Visual Studio 2013 で参照できない

これは私がしました:

  1. Visual Studio 2013 で新しい WebAPI プロジェクトを作成しました
  2. パッケージ マネージャー コンソール: Install-Package HangFire
  3. パッケージ マネージャー コンソール: インストール パッケージ HangFire.Mongo
  4. サンプル コードをグローバルに配置し、ここで説明されているサンプル スタートアップ クラスを作成しましたhttps://github.com/sergun/Hangfire.Mongo

コンパイルすると、名前空間のエラーが発生The type or namespace name 'Mongo' does not exist in the namespace 'Hangfire'Hangfire.Mongoますが、明らかに参照があります。

ここに画像の説明を入力