問題タブ [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# - HTTPリクエストなしでPerRequestLifetimeManagerで型を解決する
Unity で IoC を使用する MVC アプリケーションがありDbContext
、PerRequestLifetimeManager
. このオブジェクトは、Unit of Work の実装を通じてコントローラーに挿入されます。
これまでのところすべてが正常に機能しており、アプリには適切な数のモデルとコントローラーがあります。最近私がやろうとしていたことは、このアプリケーションにいくつかの自動化されたタスクを追加することであり、この目的のためにHangFireを使用したいと考えていました。
プロジェクトでこのライブラリをセットアップし、DBContext
.
でありMyTask()
、次のように定義されます。
タスク マネージャーには DBContext のインスタンスが必要です (Unit of Work オブジェクトを介して)
今私が抱えている問題は、タスクが実行されるたびに例外が発生することPerRequestLifetimeManager can only be used in the context of an HTTP request
です。
HTTP リクエストなしでこのオブジェクトを注入する方法はありますか? または、Unity 構成を変更して HangFire タスクもサポートするにはどうすればよいですか?
c# - Hangfire のインストール/起動
今日は Hangfire を試してみました。クールな製品のようです。残念ながら、私の環境は最新ではありません。VS 2010、.Net 4.0、および SQLServer 2005 を使用しています。新しいプロジェクトを作成し、Hangfire、Hangfire.Core、Hangfire.NET40.SQLServer、OWIN などをインストールしました。プロジェクトにエラーはなくなりました。すべての参照が解決されます。
ここ StackOverflow で多くの洞察を得て、指示に従ってスタートアップ クラスを構成しようとしました。
Hangfire が使用する新しい SQL ユーザーと空のデータベースも作成しました。Web.Config ファイルに、次の接続文字列を追加しました。
すべての基本をカバーしたと思いますが、実行時に UseSqlServerStorage を呼び出すとエラーが返されます。
ファイル「NoOpLogger.cs」を検索しましたが、成功しませんでした。私のプロジェクトは VB であるため、これがなぜ、どのように行われるのかわかりません。
これについて助けていただければ幸いです。
asp.net-mvc - Hangfire ジョブ内の Url.Action
Hangfire で作成された定期的なジョブがいくつかあり、これらのジョブ内で Url.Action を使用したいと考えています。可能です?または、手動で URL を作成する必要がありますか。
c# - ラムダ式の文字列からメソッドを動的に作成する方法
最終的な目標は、メソッド名を Hangfire ライブラリのクラスに動的に渡す関数を作成することです。
たとえば、動作する非動的コードは次のとおりです。
AddOrUpdate の最初の引数の型は ですExpression<Action>
。私の最初のステップは、リフレクションを使用して関数名を動的に挿入することでした。
Hangfire ダッシュボードを確認すると、この式は として評価されているようMethodBase.Invoke
です。したがって、メソッド名を動的に渡すのに助けが必要です。
それは私の質問に答えるのに十分な情報かもしれませんが、私がとった別の方法は、引数の式全体を生成しようとすることです。
この場合、{"静的メソッドには null インスタンスが必要です。非静的メソッドには非 null インスタンスが必要です。\r\nパラメータ名: メソッド"} という例外が発生します。私はそれに取り組んでいますが、これが私が進むべき道であるかどうかはわかりません. 私はこれに一日中取り組んでいるので、誰かが私の学習をスピードアップするのを手伝ってくれることを望んでいました.
sql-server - Hangfire VB の起動時に SQL 例外がスローされる
背景については、この StackOverflow の質問を参照してください。Hangfire は私にとって適切なソリューションのように見えますが、機能させるのに問題があります。私の開発環境は VB 2010 と SQL 2005 です。最新のツールではありません。
上記の記事から、元の C# コードを VB に変換するコードを借用しました。明らかに、このコードは機能しますが、実行すると、config.UseSqlServerStorage("HangfireDb") の呼び出しで「列、パラメーター、または変数 #5: データ型 datetime2 が見つかりません」というメッセージとともに SQLException エラーがスローされます。
.net - Hangfire DbContext が機能しない
Hangfire を初めてセットアップしようとしましたが、問題が発生しました。間違いなく私の開発環境のせいです。VB 2010、SQL 2005、および .NET Framework 4.0 を使用しています。EntityFramework を含む、Hangfire をここまで使用するために、多数のパッケージをインストールしました。
これは私が困惑したコードです。これは、MVC プロジェクトの Models フォルダーにあります。
System.Data.Entity の Imports ステートメントがあることに注意してください。System.Data.Entity.dll の .NET 4.0 バージョンは、私のプロジェクト リファレンスに含まれています。ただし、コンパイラは、タイプ「DbContext」が定義されていないと不平を言います!
c# - データベースにあるにもかかわらず、Hangfire がタスクを実行していない
Hangfire で何が起こっているのかわかりませんが、BackgroundJob.Enqueue() を呼び出すとデータベースにジョブが「Scheduled」として追加されますが、何も起こらないようです。メソッド コードが実行されていないようです。デバッガーではブレークポイントがヒットせず、ジョブ内からのログには何も出力されません。