問題タブ [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.
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 構成を共有するにはどうすればよいですか?
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() で
hangfire - Hangfire と Redis を使用して、キー ハッシュを使用してジョブをさまざまな Redis サーバーに分割する簡単な方法はありますか?
現在 MSSQL で Hangfire を使用しており、Redis に移行してタスクのスループットを向上させたいと考えています。
キー ハッシュによるシャーディング (パーティショニング) は非常にシンプルで、スケーラブルで、保守も簡単です。現在、Redis クラスターにアクセスできません。したがって、満たす必要がある要件は 2 つあります。
- 構成ファイルを介して Hangfire に渡された Redis サーバーのリストを用意します。
- 指定されたキーが予測どおりにいずれかのサーバーに送信されるようにします (Memcached と同様)。
そうすれば、「n」個の Redis サーバー間で任意の数のジョブを分割できます。
Hangfire には、ストレージとジョブという 2 つの部分があることに気付きました。これらの 2 つのコンポーネントが Redis シャード環境でどのように機能するのか興味があります。
Twemproxy などのサードパーティ製コンポーネントがこれらの懸念に役立つことはわかっていますが、キーハッシュのアプローチは非常に単純なので、Twemproxy を実装する前にその手段を使い果たすと思いました。
ありがとう!
hangfire - ハングファイア ジョブ: 起動しても実行されず、ステータスは成功のままです
Hangfire を使用して実行する特定のジョブがあり、それは実行されず、成功を返します。例外は表示されず、成功に直行するだけです。何が問題なのか:
以下は関数のシグネチャです。
asp.net - Hangfire にはアクティブなサーバーがありません
ASP MVC アプリケーションを発行した後、Hangfire ダッシュボードに、アクティブなサーバーがないと表示されます。DB で Hangfire のテーブルを再起動、再構築、削除しようとしましたが、成功しませんでした。OWIN スタートアップ クラス:
hangfire - Hangfire は定期的なジョブをキューに入れます
hangfire を使用して定期的なジョブを実行しています。私の仕事は、データベースから現在のデータを取得し、アクションを実行し、処理されたレコードにトレースを残します。この 1 分間にジョブが実行されなかった場合、次の 1 分間に 2 回実行する必要はありません。
どういうわけか、定期的なジョブ (1 分周期) が何千もキューに入れられ、実行されませんでした。IIS を再起動すると、すべてを一度に実行して DB を詰まらせようとしました。
実行されない問題を解決する以外に、それらがキューに入るのを止める方法はありますか?
mongodb - Hangfire.Mongo を Visual Studio 2013 で参照できない
これは私がしました:
- Visual Studio 2013 で新しい WebAPI プロジェクトを作成しました
- パッケージ マネージャー コンソール: Install-Package HangFire
- パッケージ マネージャー コンソール: インストール パッケージ HangFire.Mongo
- サンプル コードをグローバルに配置し、ここで説明されているサンプル スタートアップ クラスを作成しましたhttps://github.com/sergun/Hangfire.Mongo
コンパイルすると、名前空間のエラーが発生The type or namespace name 'Mongo' does not exist in the namespace 'Hangfire'
しHangfire.Mongo
ますが、明らかに参照があります。