C# 如何处理服务启动和关闭事件?
我正在使用quartz.net作为windows服务来安排我的作业。我的作业正在长时间运行,如果quartz服务停止,或者有人手动停止/重新启动它,或者windows关闭/重新启动,我需要优雅地终止它们;没关系。在我的工作中是否有任何石英关机事件可以处理?Quartz是否还有一个启动事件,我可以处理该事件以在数据库中设置一些启动值?我正在使用c进行我的工作。当应用程序关闭时,您是否尝试调用IsScheduler.Shutdowntrue?C# 如何处理服务启动和关闭事件?,c#,quartz.net,C#,Quartz.net,我正在使用quartz.net作为windows服务来安排我的作业。我的作业正在长时间运行,如果quartz服务停止,或者有人手动停止/重新启动它,或者windows关闭/重新启动,我需要优雅地终止它们;没关系。在我的工作中是否有任何石英关机事件可以处理?Quartz是否还有一个启动事件,我可以处理该事件以在数据库中设置一些启动值?我正在使用c进行我的工作。当应用程序关闭时,您是否尝试调用IsScheduler.Shutdowntrue? 应该允许正常关机:如果您得到以下代码库: 很多工作已经完
应该允许正常关机:如果您得到以下代码库: 很多工作已经完成了 您应该调试代码。 但阿什加是正确的。。。。Shutdowntrue允许优雅的关闭。这意味着……它将尝试完成任何已经运行的作业 如果您使用控制面板停止服务………它可能会调用我猜测的优雅方法,我不确定……。因此,如果优雅停止在控制面板服务关闭超时发生之前结束……它将正常运行 如果正常关机时间长于控制面板服务关机超时时间……您将收到一条类似于您的服务未及时关机的windows消息 如果您使用的是内存中的数据存储Quartz.siml.RAMJobStore,那么在重新启动服务时就没有什么可做的了 如果您使用的是ADO net数据存储Quartz.Impl.AdoJobStore.JobStoreTX…那么从我停止的内容中会有一些改进……这是一个需要深入研究的问题。 失火将是一个值得关注的术语
如果您使用内存中的数据存储Quartz.siml.RAMJobStore正常停止……基本上与关闭计算机电源相同……当它再次启动时,它将不知道任何状态。Quartz作为服务运行,我无法控制它何时关闭。这就像在兜圈子,如果我不知道Quartz正在关机,我怎么知道什么时候打电话给IsScheduler.Shutdowntrue?