2016-12-09 12 views
0

ハングファイアの定期的なタスクがあり、デバッグ/ロギングの目的で、そのタスクのIDにアクセスしたいという状況があります。タスク自体の中でhangfire定期ジョブのタスクIDを取得する

私のコードは次のようタスクがある登録/作成する:

RecurringJob.AddOrUpdate(Environment.MachineName,() => MyTask(), Cron.MinuteInterval(_delay)); 

と私はそこにするマシン名である(タスクIDをログに記録する必要があるが、明らかにサーバーファームで実行するコード

実行されているアクションで実行中のタスクのIDにアクセスするにはどうすればよいですか?

public void MyTask() 
{ 
    var taskId = GetTheHangfireTaskIdThatTriggeredThis(); //this is the code I need 
    Debug.WriteLine(taskId); 
} 

最終的に私は(それはAからサーバ自体のローカルキャッシュを更新することであるタスクのみ、私はファーム内のすべてのサーバー上で実行するタスクを必要として登録されたサーバー上で実行されるようにしたいです中央の場所)。これを達成するためのより良い方法があれば、私に助言してください。

+0

を渡すためにそれを変更しましたか? – helgeheldre

+0

@helgehedreはい、ありがとうございました、私はタスクにパラメータを渡すという考えを探っていませんでした – MikeW

答えて

0

は)あなただけの方法MyTaskに(にMachineNameにを送るのはなぜカントパラメータ

RecurringJob.AddOrUpdate(Environment.MachineName,() => MyTask(Environment.MachineName), Cron.MinuteInterval(_delay)); 

public static void MyTask(string taskId) 
    { 
     if (!taskId.Equals(Environment.MachineName)) 
     { 
      return; 
     } 

     Debug.WriteLine(taskId); 
    } 
関連する問題