gpt4 book ai didi

c# - 如何为长时间运行的作业停止 Windows 服务?

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

目前我正在使用 Windows 服务继续在后台运行一些作业。这些作业是通过 Quartz.Net 安排的。通常这些是长时间运行的作业,跨度从 5 分钟到 15 分钟。如果作业当前正在运行,并且如果用户将尝试关闭 Windows 服务,则它会抛出异常:Windows 服务未及时响应。

实际上是 WindowsService 的 OnShutdown() 方法,我也在尝试关闭 Quartz.Net。我正在调用 scheduler.Shutdown(true) 来停止调度程序并等待正在运行的作业。如果我将此设置为 False,则 Windows 服务将正常停止,但它会将正在运行的作业置于不稳定状态。请帮我解决这个问题。

最佳答案

您收到此错误是因为您的服务未在约定的时间内完成停止。因此,SCM 假定它以某种方式挂起并中止它。

要告诉 SCM 您需要更多时间来完成操作,请在 OnStop 处理程序中调用 ServiceBase.RequestAdditionalTime()。有关详细信息,请参阅 http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.requestadditionaltime.aspx

关于c# - 如何为长时间运行的作业停止 Windows 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16133809/

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