2014-05-22 30 views
1

我知道如何使用FileSystemWatcher类,并且我知道如何发送我想发送的消息。我想不出的是在哪里初始化FileSystemWatcher如何在创建文件时发送NServiceBus消息?

我假设有一些地方初始化Endpoint我可以设置这个,但我不确定那会是。

似乎是这样一个常见的用例;我有点惊讶,Udi没有把它建成NServiceBus!

回答

0

我要去尝试以下告诉你,如果它的工作:

一个创建FileWatcher类。静态布尔变量'keepChecking'

b。一个静态方法watchFiles()启动FileSystemWatcher,然后通过一个循环来保持活动状态,该循环测试keepChecking

b。的的OnChange等FileSystemWatcher的事件处理程序 - 这在由FileSystemWatcher的触发,可能发出NServiceBus事件

  • 要启动监视器(在我的NSB主持节目)你运行WatchFiles()方法在从IWantToRunWhenBusStartsAndStops继承的初学者类中的单独线程中。

  • 要停止观察者,首先将watcher.EnableRaisingEvents设置为false,然后将keepWatching设置为false,以便循环结束。

  • 在此的StackOverflow问题与代码类似的方法:从泰勒日 NServicebus with File System Watcher

    除了他将starter类与filewatcher类及其在同一线程中运行的(非静态)创建方法统一在一起。有趣的是,它不需要Keepalive循环,因为FileSystemWatcher事件订阅被定义为静态的。

    他被告知,这不是最好的方式去,并给出了两个建议:a。使用“卫星级”或b。将整个事物移动到一个单独的类中,使fileWatcher本身为静态。没有提到Keepalive循环。我也会尝试。