Flask接口签名sign原理与实例代码浅析
297
2023-05-06
Spring定时任务实现与配置(二)
接上一篇,原本我以为我实现的方式很简单了,在准备写(一)的时候,就去查了查别人是怎么实现定时任务的。不查还好,这一查,发现还有更简单的。所以就会有这篇文章。
本文主要是讨论,在完成Spring 项目搭建的情况下完成简单的定时任务实现。
在上一篇中,我们实现了“最简单”的定时任务,在那里我们是基于MAVEN管理包的依赖,依赖以下两个包:
<!-axLYZjxazL- 定时器依赖 结束 -->
原本我想着 新的方法可能不需要呢,于是试试注释掉会怎么样,于是就出现了这样的情况:
显然我想错了,正式开始:
第一步,在maven的pom文件中添加上文列出的两个包;
第二步,在spring配置管理xml头部中,添加命名空间(大部分文献都是这样写的,但还没有找到正式的说法,如果有我会再修改这个名http://词的,现在暂且用着)
xsi:schemaLocation="http://springframework.org/schema/task http://springframework.org/schema/task/spring-task-4.1.xsd "> 第三步,在spring配置文件中配置定时任务相关内容 第四步,完成业务逻辑实现类: import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.concurrent.TimeUnit; import org.joda.time.DateTime; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class ATask { @Scheduled(cron="0/10 * * * * ? ") //每10秒执行一次 public void aTask(){ try { TimeUnit.SECONDS.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } Dathttp://eFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(DateTime.now().toDate())+"*********A任务每10秒执行一次进入测试"); } } 这样的方式比配置的更为简单,但是我认为配置的方式会更加灵活,当然实现的方式方法很多。我们只讨论最简单的实现,显然这个是我看到的最简单的实现方法。 开启服务,我们来看看效果: 大致就这样完成了,但是这里我发现好像遇到了上一篇文章结尾的时候,提到的同一时间点运行了两次代码。我得再看看 ,如果有知道的朋友请给我留言! 下一篇是写关于cron 表达式
xsi:schemaLocation="http://springframework.org/schema/task
http://springframework.org/schema/task/spring-task-4.1.xsd ">
第三步,在spring配置文件中配置定时任务相关内容
第四步,完成业务逻辑实现类:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
import org.joda.time.DateTime;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ATask {
@Scheduled(cron="0/10 * * * * ? ") //每10秒执行一次
public void aTask(){
try {
TimeUnit.SECONDS.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
Dathttp://eFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(DateTime.now().toDate())+"*********A任务每10秒执行一次进入测试");
}
}
这样的方式比配置的更为简单,但是我认为配置的方式会更加灵活,当然实现的方式方法很多。我们只讨论最简单的实现,显然这个是我看到的最简单的实现方法。
开启服务,我们来看看效果:
大致就这样完成了,但是这里我发现好像遇到了上一篇文章结尾的时候,提到的同一时间点运行了两次代码。我得再看看 ,如果有知道的朋友请给我留言!
下一篇是写关于cron 表达式
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~