gpt4 book ai didi

asp.net - 在ASP.NET + WCF下长时间运行的线程进程

转载 作者:行者123 更新时间:2023-12-03 13:01:37 26 4
gpt4 key购买 nike

重复
这是Dealing with a longer running process in WCF的近似副本。请考虑发布您对此答案的答案,而不是此答案。

原始问题
我正在实现必须在计划的时间运行某些后台进程的应用程序的业务层。业务层由全部在同一Web应用程序下运行的几个WCF服务组成。

这个想法是定义一组必须在不同时间(例如,每5分钟,每天23:00等)运行的“任务”。将其实现为Windows服务并不难,但是问题是,任务需要访问服务中的数据缓存,因此,此“调度程序”必须在IIS上下文下运行才能访问该数据。

我当前正在做的是在WCF服务之一中使用自定义ServiceHostFactory,该服务会生成子线程并返回。子线程每隔X分钟 sleep 并唤醒一次,以查看是否有计划的任务并执行它们。
但是我担心IIS在回收应用程序池时或在不 Activity 时间过后会随机杀死我的线程(例如,任何WCF服务都没有 Activity ,这些服务会监听来自表示层的请求)。无论服务上的 Activity 如何,线程都必须不间断运行。这真的有可能吗?

我找到了an article by someone doing the same thing,但是他的解决方案似乎是定期从子线程本身ping服务器。希望有更好的解决方案。

最佳答案

我在某个时候实现了Windows服务,该服务会定期加载网页。这样做的目的是该站点托管Workflow Foundation运行时,并且我们希望确保在IIS回收应用程序池后重新启动该Web应用程序。在这种情况下,也许可以使用相同的方法。每隔x分钟运行一次服务(或Windows中的“计划任务”;甚至更简单),并加载一个将检查任务的页面。

关于asp.net - 在ASP.NET + WCF下长时间运行的线程进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1146595/

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