gpt4 book ai didi

c# - 在共享主机中在 IIS/WCF 下触发线程/进程的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:42 26 4
gpt4 key购买 nike

场景:WCF 服务从客户端接收 XDocument,对其进行处理并在 MS SQL 表中插入一行。

多个客户端可以同时调用 WCF 服务。调用通常不会花费很长时间(几秒钟)。

现在我需要东西来轮询 SQL 表并以异步方式运行另一组进程。第二个进程不必回调任何东西,也与 WCF 没有任何关系。它只需要读取表并执行一系列方法,也许还有一个 Web 服务调用(当然如果有记录的话),仅此而已。使用上述服务的 WCF 服务客户端对此一无所知,也不关心它。

我读过 this question in StackOverflow并且我也知道 Windows 服务将是理想的,但此 WCF 服务将托管在共享主机(discountasp 或类似主机)上,因此,安装 Windows 服务将不是一个选项(据我所知)。

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

我会说我需要它每 10 分钟左右检查一次。它不需要是即时的。

谢谢。

最佳答案

作弊。将此进程公开为另一个 WCF 服务,并在预定的时间从您控制的盒子中触发一个 go 命令。

虽然您可以在 WCF 中启动后台线程,或者使用缓存过期作为穷人的调度程序,但当您的应用程序池回收时,这些线程将停止,直到您的网站上出现下一次点击,应用程序池再次启动。至少从您控制的机器发出请求意味着您知道应用程序池将每 10 分钟左右恢复一次,因为您已向其发送请求。

关于c# - 在共享主机中在 IIS/WCF 下触发线程/进程的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/673402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com