2017-06-01 9 views
1

私は、MemoryStorageを使用している単純なC#コンソールアプリケーションでHangfireジョブを開始するのに苦労しています。私はHangfireでいくつか試してみたいですが、設定方法を理解できません。私はこれらのメッセージのいずれかが届かないコンソールアプリケーションでHangfire MemoryStorageジョブを正常に実行する方法は?

private static void Main(string[] args) 
    { 
     GlobalConfiguration.Configuration.UseMemoryStorage(); 

     Hangfire.BackgroundJob.Enqueue(() => Console.WriteLine("fire!")); 
     Hangfire.RecurringJob.AddOrUpdate(() => Console.WriteLine("minute!"), Cron.Minutely); 

     Console.ReadKey(); 
    } 

は、ここに私のコードです。

JobStorage.Current = new MemoryStorage(new MemoryStorageOptions());でも試してみましたが、何も変わりませんでした。

答えて

1

メモリ内のストレージが使用されている場合、ストレージを宣言するプロセスと同じプロセスにHangfire Server(ワーカースレッドプール)を追加する必要があります(ストレージはちょうどConcurrentDictionaryインスタンスです)。コンソールアプリケーションで

が、それは次のようになります。

static void Main(string[] args) 
{ 
    GlobalConfiguration.Configuration.UseMemoryStorage(); 

    BackgroundJob.Enqueue(() => Console.WriteLine("Easy!")); 

    using (new BackgroundJobServer()) 
    { 
     Console.WriteLine("Hangfire Server started. Press ENTER to exit..."); 
     Console.ReadLine(); 
    } 
} 
+0

ブリリアント、ありがとうございました!私はプログラムがそこで停止しなければならないことを気づかなかった。定期的な仕事も同様に機能します。 – Phronux

関連する問題