方案:A WCF服务接收一个XDocument来自客户端的,对其进行处理,并在MS SQL表插入一行

多个客户端可以同时调用WCF服务。呼叫通常并不需要很长时间(几秒钟)。

现在我需要的的东西的轮询SQL表和以异步方式运行的另一组的过程。 第二届进程没有回调任何东西,也不会以任何方式相关的WCF。它只是需要读取表并执行一系列的方法和可能是Web服务调用(如果有当然的记录),但仅此而已。 WCF服务的客户消费上述服务有没有这个想法,并不在乎它。

我读过有关在StackOverflow的和我这个问题也知道,一个Windows服务将是理想的,但这个WCF服务将在一个共享的主机(discountasp或类似的),因此,安装Windows服务将不会是一种选择托管(如据我所知)。

鉴于该架构是固定的(即:我不能改变表,它来自一个遗留格式,也不改变WCF服务机制)?,这将是您的建议轮询/处理此表

我说我需要它每隔10分钟左右检查。它并不需要是瞬间。

感谢。

有帮助吗?

解决方案

作弊。公开此过程作为另一个WCF服务,从您的控制下箱消防go命令在计划的时间。

虽然你可以在WCF火起来后台线程,或者使用高速缓存期满作为一个穷人的调度者,当你的应用程序池回收,直到下一次砸在你的网站和应用程序池将再次加速将停止。至少从射击你操控机器的要求意味着你知道应用程序池将回来了每10分钟左右,因为你已经在它的方向发送的请求。

其他提示

一个Web应用程序是不适合在所有要以固定间隔运行的东西。如果有未来中没有要求,没有在应用程序中运行任何代码,如果应用是不活动的,而IIS可以决定,直到下一个请求进入完全关闭它。

对于某些应用来说是没有的东西是在特定的时间间隔运行在所有重要的,只知道它最近已运行。如果这是你的应用的话,那么你可以只跟踪当表的最后调查,并为每个请求检查是否有足够的时间已经过去了再次调查表。

如果您可以访问管理数据库,有SQL Server中的调度。它可以运行查询,存储过程,甚至启动过程,如果您有权限(这是一个共享的主机不太可能,虽然)。

如果您需要在一个特定的时间间隔的代码,你不能访问服务器来安排,或运行它作为一种服务,或不能使用SQL Server计划,这根本就不是可行的。

请您应用程序池“总是有效”,做任何你想要与你的线程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top