2016-07-08 15 views
1

私は2つの別々のアプリケーションを持っています。 1つはHangFireを使用し、定期的なジョブをスケジュールします。もう一つはテストを含んでいます。テストは統合的なものなので、何かを嘲笑せずに実際の経路を再利用します。両方のアプリに同じデータベースへのアクセスがありますハングファイアサーバーをインスタンス化せずにハングファイアジョブを削除する

テストを実行した結果、最初のアプリで作成された定期ジョブが表示されます。しかし、テストは統合的なので、プロダクションDB上で実行されるので、テストが完了したら、作成された定期ジョブを削除したいと思います。そして、私はテストで除去を処理したいと思います。

2番目のアプリでハングファイアクラスを設定できるかどうかを知りたい場合は、最初のアプリで作成された定期ジョブを削除することができます。

2番目のアプリケーションで同じSQLサーバーを使用するようにハングファイアを設定するだけでは、新しいHangFireServerがインスタンス化され、実行するジョブを「取得」します。

SQLクエリを実行してジョブを削除できますが、そのようなことは避けてください。

私は自分自身を十分に説明することを希望します。

答えて

1

削除/ジョブかどうかを追加することができますJobStorageを先に投入している限り、定期的なジョブまたはバックグラウンドのジョブです。

おそらくこれを設定する方法は2つあります。

JobStorage.Current = new SqlServerStorage("Your ConnectionString");; 

または

GlobalConfiguration.Configuration.UseSqlServerStorage("Your ConnectionString"); 

その後、あなたは今Hangfireサーバーをインスタンス化するためにあなたのRecurringJob.RemoveIfExists("id")と必要はありませんを使用することができます。他のアプリケーションに手を差し伸べる前に、すでにHangfire Schemeを作成しているとします。

+0

これはまさに私が探していたものです。ありがとう! – netaholic

1

あなたがドキュメントページ上で述べたように、あなただけの、RecurringJob.RemoveIfExists(「ID」)を行うことができますIDであなたの定期的なジョブを作成したと仮定すると:Hangfireでhttp://docs.hangfire.io/en/latest/background-methods/performing-recurrent-tasks.html

+0

はい、私はIDを知っています。あなたがリンクしていることは私の質問には答えません。 2番目のアプリケーションでHangFireを設定する方法がわからないので何もしませんが同時に 'RecurringJob.RemoveIfExists(" id ")'を使用できるようにします – netaholic

+0

データベースを使用してあなたの仕事は?私はあなたが単にHangfireを参照できると思うので、正しいデータベースでそれを設定して、ジョブを削除してください。 ライブラリ内でHangfireをラップし、どこからでも使用できます。 – derkesthai

+0

質問に指定したとおり - はい、私はdbを使用します。そして、両方のアプリがこのデータベースにアクセスできます。 'GlobalConfiguration.Configuration .UseSqlServerStorage(connectionString);' を書き留めて、もし* *が 'app.UseHangfireServer();' を書くことができないなら、ジョブ? – netaholic

関連する問題