-
Notifications
You must be signed in to change notification settings - Fork 2
Home
zywaited edited this page Aug 26, 2020
·
1 revision
目前配置的时间刻度是秒级别
类型 | 方法 | 方式 |
---|---|---|
添加任务 | /task/add | POST |
删除任务 | /task/remove | POST、DELETE |
查询任务 | /task/get | GET |
尽量不使用,线上可能会关闭该协议,因为对于延迟任务不会频繁请求,长连接意义不太大
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
name | string | 是 | 业务名称 |
args | string | 否 | 业务自定义数据(尽量不要传输复杂逻辑,业务方自行存储) |
time | object(json) | 否 | 执行时间 |
time.duration | nt | 否 | 执行时间戳(如果是相对则是延迟时间) |
time.relative | Bool | 否 | 是否是相对时间(如果是相对时间,那么真正执行时间为NOW()+duration) |
callback | object(json) | 是 | 回调路径(如果是HTTP,uri为schema+address+path) |
callback.schema | tring | 是 | 协议: 支持http:https:grpc |
callback.address | string | 是 | 地址(域名或者ip+port) |
callback.path | string | 否 | 路径 |
字段 | 类型 | 说明 |
---|---|---|
uid | string | 任务唯一标识(根据传入参数计算,相对时间会转为绝对时间计算,尽量都用绝对时间) |
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
uid | string | 是 | 与添加任务返回值一致 |
name | string | 是 | 与添加任务参数name一致 |
args | string | 是 | 与添加任务参数args一致 |
url | string | 是 | 拼接的回调地址 |
返回值参考2.1,回调只能是POST方式
- 参考pb协议:https://github.com/zywaited/delay-queue/blob/master/protocol/pb/protobuf/service.proto
- 1: 当path为空时,需要实现pb协议中的CallbackServer,回调时执行该方法
- 2: 当path不为空时,那么直接回调指定方法(特别注意该路径是sdk生成的路径,也就是服务名+方法,如:/med-delay-queue.Callback/Send)
- 目前配置的最大检测次数是8次
- 每次回调配置次数是3次
- 2次重试回调的时间:2,4 (s)
- 回调HTTP必须是返回的状态码为<400才算成功, GRPC不返回err即可
- 如果回调失败会钉钉报警(除却1-2次(执行效率问题),后续的报警都是5分钟以后)
- 实际检测次数会比配置多一次,比如配置8次,实际检测是9次,最后一次不进入队列,只是为了确认任务是否回调成功,没有成功就打印日志并且去除当前任务(防止无效任务过多)
每次检测延后执行时间
- 1-3:15、30、60 (s)
- 4-6:15、30、60 (m)
- 7-9:4、8、12 (h)
- >=10:1 (d)