NServiceBusスケジューラを使用している間、定義されたデリゲートをトリガするのに失敗しました。 EndpointSchedulerクラスをセットアップするには、以下のリンクのドキュメントを使用しました。NServiceBus 5.2.14 - スケジューラがデリゲートをトリガできません
エンドポイントに対応するタイムアウトキューが作成され、メッセージが正常にキューに入ります。実行中にエラーは発生しませんが、スケジューラはデリゲートをトリガしません。私は現在、NServiceBus 5.2.14を使用しています。同様のテストは、NServiceBus 3.2.7を使用して動作します。スケジューラがデリゲートをトリガしない理由は何ですか?いくつかの潜在的なセットアップの問題を指摘して@DavidBoikeへ
http://docs.particular.net/nservicebus/scheduling/
public class EndpointScheduler : IWantToRunWhenBusStartsAndStops, ILoggable
{
public EndpointScheduler(Schedule schedule)
{
this.schedule = schedule;
}
public void Start()
{
schedule.Every(
TimeSpan.FromMinutes(1),
"Test",
() =>
{
Debug.WriteLine("I'm testing the scheduler");
}
);
}
public void Stop()
{
}
}
残念ながら、それはWorks On My Machine™だけです。 Debug.WriteLineはコンソールに出力されませんが、Visual Studioの出力ウィンドウに表示されます。 Console.WriteLineはコンソールに作用します。私はまた、タスクの前後に記録されたINFOメッセージを見て、その上でブレークポイントを打つことができます。あなたの例で私的な 'schedule' varがないと仮定します。それ以外の場合はコンパイルされません。それはNSBからではないのでILoggableとは何ですか?それはそれと関係がありますか?それ以外の場合は、エンドポイント構成コードを表示します。 TimeoutManagerとTimeoutManagerBasedDeferral機能が有効になっていることを確認しますか? –
@DavidBoikeこれは完全に私によって引き起こされました。私のEndpointConfigはこの設定を持っていたDisableFeature(); これを削除すると間違いが修正されました。これを見てくれてありがとう! –
Pietro