[TOC]
task 执行与调度的三个核心点
- 任务 (TaskExecutor interface)
- 怎么执行 (TaskExecutor types)
- 在什么时间执行 (TaskScheduler abstraction)
glossary
- spring 提供了TaskExecutor和TaskScheduler 接口,抽象了asynchronous execution和 scheduling of task
- docs: https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html
为什么需要TaskExecutor和TaskScheduler接口?
- 原理:spring 提供了任务执行的机制,对于使用者来说通过实现TaskExecutor interface 把任务提交给spring执行
- spring 针对不同人物需求提供了不同的TaskExecutor types,使用者根据需求选择
TaskExecutor abstraction
- 功能:规范了任务定于与执行方式
- 两个关注点:
- task:java.util.concurrent.Executor 定义了自定义任务的接口(只有一个方法
execute(Runnable task)
) - task executor: 执行task, spring提供了一些 TaskExecutor types,一般开箱即用
- task:java.util.concurrent.Executor 定义了自定义任务的接口(只有一个方法
TaskScheduler abstraction
- 功能:指明任务如何执行
- 两个关注点:
- task trigger:配置任务触发调度的时间,spring 提供了一些 triger implementations
- task scheduler: 调度任务, spring 提供了一些 task scheduler
总结
四个关注点,要自己实现的就task,其他的只要组装起来就好
how to use
三步骤:
- 创建自己的任务
- 指明使用spring的哪个类型的 TaskExecutor type 执行
- 指明以什么样的方式执行
网友评论