首页 > 编程知识 正文

java定时任务只执行一次,java定时任务时间设置问题

时间:2023-05-05 08:45:36 阅读:47381 作者:4128

公共类作业2 {

公共语音文档B2 (

system.out.println (不继承' quartzjobbean方法-正在进行计划. ';

}

}

这就是普通班,你会发现有一种方法。

步骤2 :配置作业类

class=' org.spring framework.scheduling.quartz.methodinvokingjobdetailfactorybean '

说明:这是一个重要的步骤,声明methodinvokingjobdetailfactorybean。 有两个重要属性。 targetObject指定任务类,targetMethod指定执行方法。 下一步和方法一样。 为了完整,同样投稿。

步骤3 :配置触发作业调度的方法(触发器)

Quartz的工作触发器有两种,分别是

org.spring framework.scheduling.quartz.simpletriggerbean

org.spring framework.scheduling.quartz.crontriggerbean

第一个SimpleTriggerBean仅支持以固定频率调用任务,如每30分钟运行一次。

配置方法如下:

第二个CronTriggerBean支持在指定的时间运行一次,例如每天运行12:00次。

配置方法如下:

以上两种调度方式,根据情况,可以选择其中一种。

第四步:调度工厂配置

说明:此参数指定以前配置的触发器的名称。

第五步:启动APP应用程序就可以了。 在tomcat和其他容器中部署工程。

现在,我们介绍了spring中Quartz的基本配置。 当然,在使用之前,必须部署相应的spring软件包和Quartz软件包。 这些不言而喻。

其实Quartz的构成看起来还很复杂,可见没办法。 Quartz其实是重量级的工具,所以如果我们想轻松地完成几个简单的定时任务,有没有更简单的工具? 有!

Spring-Task

本文介绍了Spring3.0或更高版本中自行开发的定时任务工具spring task。 这可以比作轻量级的Quartz,很容易使用。 除了与spring相关的软件包之外,不需要其他软件包,同时支持注释和配置文件

形式,以下分别介绍这两种方式。

第一种是轮廓方式

步骤1 :创建作业类

也就是说,普通的pojo如下所示。

importorg.spring framework.stereotype.service;

@Service

公共类任务作业{

公共语音作业1 () {

System.out.println (“任务正在进行中。 ”。 );

}

}

将命名空间和说明添加到步骤spring配置文件标题中

xmlns : task=' http://www.spring framework.org/schema/task '。

xsi :方案定位=' http://www.spring framework.org/schema/task 3358 www.spring framework.org/schema/task/tttttask

为步骤spring配置文件设置特定任务

说明:在ref参数中指定的任务类、在method中指定的要执行的方法、cron和cronExpression表达式以及具体的写法在此不介绍。 详细内容请参考上一篇文章的附录。

这个配置当然是spring用来扫描评论的。

到此为止配置完成了。 很简单吧?

第二,使用评论格式

虽然您可能不需要在每次编写任务类时在xml文件中进行设置,但请使用注释@Scheduled来查看源文件中注释的定义。

@ target (Java.lang.annotation.element type.method,Java.lang.annotation.element type.annotation _ type ) )

@ retention (retention policy.runtime ) )。

@Documented

公共@接口计划

{

公共abstract string cron (;

公共基础长固定延迟(;

公共基础长固定速率(;

}

可以看到这个评论有三种方法或参数。 各自的含义如下。

cron :指定cron表达式

固定延迟:官方文档说明: an interval-basedtriggerwheretheintervalismeasuredfromthecompletiontimeoftheprevioustask.thetimeunured

固定速率:官方文档说明: an interval-basedtriggerwheretheintervalismeasuredfromthestarttimeoftheprevioustask.thetimeunitvalurus

试着配置在以下吧。

创建步骤pojo

importorg.spring帧. scheduling.annotation.scheduled;

importorg.spring framework.stereotype.com ponent;

@ component (“任务作业”)

公共类任务作业{

@scheduled(cron='0003**? )

公共语音作业1 () {

System.out.println (“任务正在进行中。 ”。 );

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。