f#中长期运行的代理

时间:2012-04-21 14:44:19

标签: wcf f# agent mailboxprocessor

我以不同的方式使用代理,其中一个代理由100个代理监视网站更改,并向主管报告,我可以调用它来生成新的监视器,或者收听合并的更改。 这只是我的计划的一部分,我很高兴。 我现在想把它关掉,它真正独立于我的主程序运行。

(但我希望这个独立的衍生产品能够尽可能多地保留在内部,并尽可能使用最少量的胶水代码)

我在这里/你会推荐什么策略?

1 个答案:

答案 0 :(得分:9)

执行长时间运行的代理程序的一个选项是编写以操作系统启动的Windows服务(甚至可能在登录之前)并在后台运行。然后,您的主应用程序可以连接到该服务并与之通信。

在服务中运行代理非常简单。服务和主应用程序之间的通信更加棘手,因为它们是两个独立的进程。该示例使用.NET Remoting,现在已经被WCF取代,所以我认为这是一个值得关注的事情(特别是如果你想要异步通信)。或者,有一些F#项目实现了简单的基于套接字的通信,这可能更容易使用。