我正在Asp.net中构建一个Web应用程序。我有长时间运行的任务,可能会或可能不会完成,因为IIS往往会杀死长时间运行的任务。
问题?不。我使用quartz来定期重启死亡的任务(因为更改会保存在数据库中,所以我们需要做的就是重新启动线程)。
但是现在我正在尝试构建我的Web应用程序来支持扩展。我想运行多个实例。
因此,为了处理我长时间运行的任务,我正在考虑在我的数据库中添加一列来记录哪个实例已“检出”给定任务。但是,我需要知道线程什么时候死掉,这样才能确保它已经“检入”。
那么如何检查线程何时死亡?
答案 0 :(得分:0)
IIS不会杀死线程,它会杀死AppDomains。我知道的唯一方法就是让它在运行时将一个条目写为心跳信号。如果心跳停止,线程就会死亡。