在 WCF 中 运行 循环后台任务的好方法?

Good way to run recurring background task in WCF?

我有一个在 IIS 下 运行 的 WCF 解决方案。我需要返回给客户的一些数据来自第三方网站,我们需要经常轮询这些网站以获取任何新数据。

为此目的,在 Application_Start() 方法中创建计时器以 运行 重复出现的后台任务是否是一种不好的做法?如果这不是一个好主意,那么您有什么建议?

不,是 not a good idea。这样做的原因是 IIS 可以并且将会出于许多不同的原因卸载您的应用程序域。发生这种情况时没有警告,应用程序域可能会长时间保持卸载状态,甚至直到 "wake it up".

收到请求。

要实现您想要的效果,您应该使此轮询过程脱机并使其在 IIS 应用程序域 unload/load 周期内持久存在。有a few different techniques for this, but I would recommend hangfire