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图

task_schema

参考资料

http://spring.io/blog/2016/01/27/introducing-spring-cloud-task

TaskApplication.java

评论

2 条对“Spring Cloud Task”的回复

  1. 林潮凯

    请问Spring Cloud Task如何解决定时任务?例如每晚凌晨2点执行

    1. htynkn

      Spring Cloud Task定位的是短生命周期的应用。如果需要定时执行,最好通过外部的定时(比如PCF https://docs.pivotal.io/pcf-scheduler/1-1/ )来调用app。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注