`

使用quartz 致命的问题反思

 
阅读更多

一段时间没有用 quartz 了,所以就随手写一个守护程序。

 

由于单任务的处理时间比较长,大概在 3 秒左右,而且每秒要处理5条,所以就选择了每秒创建5个 schedule 调度任务去处理,但是发现,运行一段时间后,该守护会自动停掉。

 

而且CPU占用比较大,大概在 50% 左右。但是按正常来说,10%才是正常的。

 

后来再翻看才发现很长时间没有接触 quartz ,忘记了一个关键的动作,在单任务处理完后,需要强制的 shutdown 这个 schedule,不然后,这些 schedule 会不断的累积,当数量达到一定的时候,系统的资源会逐渐的被耗尽,所以守护程序就会死掉。

 

需要 执行 context.getScheduler().shutdown(); 强制关闭。

 

值得反思。。。小失误导致大问题。

分享到:
评论

相关推荐

    Quartz 定时WebForm和WinForm使用的dll

    这个标题“Quartz 定时WebForm和WinForm使用的dll”暗示了我们将在WebForm和WinForm应用中使用Quartz来实现定时功能。在.NET环境中,Quartz通过引入特定的DLL文件来实现其功能。 首先,我们要理解什么是DLL...

    ASP.NET使用Quartz.NET实现定时任务调度

    结合使用Quartz.NET和TopShelf,我们可以构建一个在Windows服务中运行的定时任务调度系统。 Quartz.NET的特性包括: 1. **灵活的调度**:Quartz.NET支持多种调度模式,如简单触发器、cron触发器,可以按照精确时间...

    使用quartz需要的jar包

    在使用Quartz时,确保正确引入所需的jar包至关重要,因为这些jar包包含了Quartz运行所需的所有类和资源。 1. **Quartz核心库**: 主要的jar包是`quartz.jar`,它包含了Quartz的核心组件,如Scheduler、Job、...

    Android studio下的quartz工程

    在Android Studio中使用Quartz,可以为应用程序添加定时执行的任务功能,例如定期发送通知、更新数据或者执行后台服务。下面我们将深入探讨如何在Android Studio中集成并使用Quartz。 ### 1. Quartz简介 Quartz是...

    springboot中使用quartz

    在本教程中,我们将深入探讨如何在Spring Boot环境中配置和使用Quartz,以及解决服务注入和服务层传参的问题。 首先,让我们了解Spring Boot与Quartz的集成基础。要在Spring Boot项目中引入Quartz,我们需要在`pom....

    Quartz开发使用说明文档

    Quartz开发使用说明文档 Quartz是一个功能强大且广泛应用的开源作业调度框架,主要用于实现业务逻辑中的定时任务、批处理、事件触发等场景。Quartz的主要特点是高可用性、可扩展性、灵活配置、支持多种数据库和集群...

    使用quartz实现不重启服务器修改自定义配置的示例

    Quartz是一个开源的作业调度框架...不过,需要注意的是,这种方式可能导致并发问题,因此在更新配置时需要做好同步控制,避免数据冲突。此外,如果任务数量庞大,频繁的调度操作可能对系统性能产生影响,需要权衡利弊。

    spring整合quartz常见问题

    ### Spring整合Quartz常见问题详解 #### 一、Spring整合Quartz概述 Spring与Quartz的集成是企业级应用中非常常见的技术组合之一。Quartz是一个功能强大的作业调度框架,而Spring则是Java领域中广泛使用的轻量级控制...

    quartz-2.2.3版本的quartz初始化sql语句

    Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息...

    使用Quartz执行定时任务

    在使用Quartz时,Log4j可以用来记录任务执行的详细信息,帮助我们了解任务执行状态和可能出现的问题。 `dom4j-1.6.jar`是一个用于XML处理的Java库,Quartz可能用它来解析配置文件,比如`quartz.properties`,该文件...

    .NetCore 中使用QuartZ

    下面将详细讨论如何在.NET Core中集成并使用Quartz.NET。 首先,安装必要的依赖。在你的.NET Core项目中,你可以通过NuGet包管理器或命令行工具安装Quartz.NET。运行以下命令: ```bash dotnet add package Quartz...

    java 定制任务的使用Quartz,使用队列处理参数

    使用Quartz来执行这个任务,当取回来邮件的时候,可能一次性取出来多封邮件,然而在发往另一个服务端的时候,没发送一封邮件就会将该邮件带的上传的附件的目录清空,这样的话在两封邮件同时发送的时候,可能导致后一...

    关于spring中quartz的配置

    如果使用的是Spring Boot,可以在`application.properties`或`application.yml`中配置Quartz,并通过`@EnableScheduling`注解启用定时任务支持。 8. **动态管理定时任务** Spring提供的`SchedulerFactoryBean`...

    quartz-1.6.5使用手册

    Quartz 1.6.5 使用手册概述 Quartz 是一个功能强大且灵活的开源作业调度框架,广泛应用于各种企业级应用程序中。以下是 Quartz 1.6.5 使用手册的概述和相关知识点总结。 环境准备 在开始使用 Quartz 之前,需要...

    Quartz 定时任务web使用

    本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的核心概念和技术。 1. **Quartz基本概念** - **Job**:代表一个具体的任务,它定义了任务要执行的操作。 - **Trigger**:触发器,定义了任务何时开始...

    quartz在tomcat下配置使用

    这篇博客将探讨如何在Tomcat环境下配置和使用Quartz。 首先,我们需要理解Quartz的核心概念。Quartz提供了Job(作业)和Trigger(触发器)两个主要组件。Job代表一个具体的任务,而Trigger则定义了何时执行这个任务...

    使用Quartz实现定时功能

    ### 使用Quartz实现定时功能 #### 一、Quartz简介 Quartz是一个全面的、开源的作业调度器,被广泛应用于Java应用程序中进行任务调度。Quartz提供了强大的调度能力,可以满足不同场景的需求,比如定时执行任务、...

    Quartz(任务调度)使用培训

    标题和描述中提到的主题是关于Quartz任务调度系统的使用培训。Quartz是一个开源的任务调度库,其主要用途是让开发者能够轻松地安排在特定时间或根据特定规则运行代码的任务,也就是作业(Jobs)。Quartz能够与Java...

    Quartz 线程池

    3. **监控与调整**:实时监控 Quartz 的运行状态,如线程池的利用率、任务执行时间等,以便及时发现并解决问题。 ### 五、实战案例 在实际项目中,我们可以利用 Quartz 设计定时任务,例如定期备份数据库、清理...

Global site tag (gtag.js) - Google Analytics