Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何处理服务启动和关闭事件?_C#_Quartz.net - Fatal编程技术网

C# 如何处理服务启动和关闭事件?

C# 如何处理服务启动和关闭事件?,c#,quartz.net,C#,Quartz.net,我正在使用quartz.net作为windows服务来安排我的作业。我的作业正在长时间运行,如果quartz服务停止,或者有人手动停止/重新启动它,或者windows关闭/重新启动,我需要优雅地终止它们;没关系。在我的工作中是否有任何石英关机事件可以处理?Quartz是否还有一个启动事件,我可以处理该事件以在数据库中设置一些启动值?我正在使用c进行我的工作。当应用程序关闭时,您是否尝试调用IsScheduler.Shutdowntrue? 应该允许正常关机:如果您得到以下代码库: 很多工作已经完

我正在使用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?