主要观点:
- 已学习不少关于 Dapr 的知识,之前有关于Dapr Workflows和Dapr Conversation AI组件的文章,今日讨论 Dapr 生态系统的另一个重要组件 Jobs。
- 很多时候需要按计划运行工作流,如定期文件备份、执行维护任务等,Dapr Jobs 可提供帮助。
关键信息:
- 架构方面:MyApp 是用于调度和注册作业的 Java 应用,创建 cron 作业时需注册回调端点,端点应为 POST 请求,URL 模式类似
/jobs/{jobName}
。 具体步骤:
- 下载并安装 Dapr CLI,可使用 PowerShell 命令
powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"
,安装后用dapr -h
验证。 - 创建 Maven 项目,添加 Dapr 依赖
io.dapr:dapr-sdk
和 Spring Boot 依赖org.springframework.boot:spring-boot-starter-web
。 - 编写 App 逻辑来注册作业,使用
DaprPreviewClient
创建ScheduleJobRequest
并调用scheduleJob()
方法,还可使用getJob()
方法获取作业详情,deleteJob()
方法删除作业。 - 注册回调端点,使用 Spring Boot 控制器
JobsController
处理作业回调,定义@PostMapping("/job/{jobName})
方法。 - 编写 Spring Boot 应用的启动文件。
- 运行应用,使用
dapr run
命令启动,指定相关参数,如--app-id myapp --app-port 8080 --dapr-http-port 3500 --dapr-grpc-port 51439 --log-level debug
,然后运行DemoJobsClient
。
- 下载并安装 Dapr CLI,可使用 PowerShell 命令
重要细节:
- 之前文章使用.NET SDK,此次使用 java-sdk。
- 在注册作业时,
ScheduleJobRequest
构造函数需传入作业名称和 cron 表达式(此例为每 10 秒运行一次)。 - 回调端点定义为
/job/{jobName}
,当运行调度作业时,Dapr 运行时会调用该端点,示例中会打印作业名称和负载。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。