我在服务器中运行了一个调度程序窗口服务,每个作业都有不同的调度时间。
出现了两个问题:
在一周内,服务运行正常,完成所有必须执行的工作,但在某些时候,每次作业运行时,它都会在日志文件中抛出OutofMemoryException。
在运行此调度程序服务的服务器中,任务管理器只是增加内存而不是清除内存。要清理内存,调度程序服务将重新启动。
我不知道是否有办法通过代码来解决这个问题。
感谢您的建议
答案 0 :(得分:0)
石英应该自行清洁。 如果您实现了自定义JobFactory,请确保在执行后释放您的作业。
答案 1 :(得分:0)
我在这里写作,因为我找到了上述问题的解决方案。 GitHub上有一个项目,其中包含示例代码,但您可能需要根据需要进行调整,这些项目具有使用Quartz作业设置AutoFac所需的所有必要条件。这是link。
这包括两个主要特征:
Autofac.Extras.Quartz为每个Quartz作业创建嵌套的litefime范围。在作业执行完成后处理嵌套作用域。
这允许每个作业执行单个实例以及确定性地处理资源。
当然,这将有助于其他一些面临同样问题的人。