本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2016/01/30/spring-cloud-task/
Spring Cloud Task是Spring Cloud下的一个新项目,1.0.0.M1版不久前才发布。
Spring Cloud项目簇是针对云平台的,然而对于大部分云平台,任何运行于之上的应用都是长实效的,如果退出,那么平台会自动重启它们已达到“恢复“的目的。
但是有些需求并不是这样的,可能存在一个生命周期极短的应用,它是定时执行的,当结束之后我并希望平台自动重启它,可能的话也希望能够获得应用运行的细节,比如起始时间,退出值等等。这就是Spring Cloud Task希望解决的问题。
目前该项目只有一个注解@EnableTask,支持主流数据库,能够获得应用(或者任务)的相关信息,也提供了生命周期的管理和对应的代码执行切面方便自定义。
附上简单的示例代码一份
@SpringBootApplication @EnableTask @EnableConfigurationProperties({ TimestampTaskProperties.class }) public class TaskApplication { @Bean public TimestampTask timeStampTask() { return new TimestampTask(); } public static void main(String[] args) { SpringApplication.run(TaskApplication.class, args); } /** * A commandline runner that prints a timestamp. */ public class TimestampTask implements CommandLineRunner { private final org.slf4j.Logger logger = LoggerFactory.getLogger(TimestampTask.class); @Autowired private TimestampTaskProperties config; @Override public void run(String... strings) throws Exception { DateFormat dateFormat = new SimpleDateFormat(config.getFormat()); logger.info(dateFormat.format(new Date())); } } }
附上schema图
参考资料
http://spring.io/blog/2016/01/27/introducing-spring-cloud-task
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2016/01/30/spring-cloud-task/
请问Spring Cloud Task如何解决定时任务?例如每晚凌晨2点执行
Spring Cloud Task定位的是短生命周期的应用。如果需要定时执行,最好通过外部的定时(比如PCF https://docs.pivotal.io/pcf-scheduler/1-1/ )来调用app。