|
|
# taskHUB 介绍
|
|
|
|
|
|
## 分享的目的
|
|
|
# 分享的目的
|
|
|
|
|
|
* 目前工作中已经大量的在使用,但大家对他没有系统性的认识
|
|
|
* 通过分享可以让
|
|
|
|
|
|
## taskHUB 介绍
|
|
|
# taskHUB 介绍
|
|
|
|
|
|
### 爬虫任务的状态。
|
|
|
## 爬虫任务的状态。
|
|
|
|
|
|
```plantuml
|
|
|
@startuml
|
... | ... | @@ -24,7 +22,7 @@ |
|
|
@enduml
|
|
|
```
|
|
|
|
|
|
### taskHUB 的作用
|
|
|
## taskHUB 的作用
|
|
|
|
|
|
1. 接受任务。
|
|
|
2. 分发任务。
|
... | ... | @@ -53,7 +51,7 @@ kafka -up-> taskHUB : 3. 接受任务日志,派生新任务或重试失败任 |
|
|
@enduml
|
|
|
```
|
|
|
|
|
|
#### 接受任务
|
|
|
### 接受任务
|
|
|
|
|
|
以HTTP POST方式提交任务
|
|
|
|
... | ... | @@ -70,25 +68,25 @@ Content-Type: application/json |
|
|
}
|
|
|
```
|
|
|
|
|
|
#### 分发任务
|
|
|
### 分发任务
|
|
|
|
|
|
基于规则,将任务提交到对应的任务队列(redis)
|
|
|
|
|
|
#### 派生任务
|
|
|
### 派生任务
|
|
|
|
|
|
根据日志,及创建任务的规则
|
|
|
|
|
|
#### 失败重试
|
|
|
### 失败重试
|
|
|
|
|
|
### taskHUB 的配置
|
|
|
## taskHUB 的配置
|
|
|
|
|
|
#### 基本概念
|
|
|
### 基本概念
|
|
|
|
|
|
* inbound 定义任务的接收行为。
|
|
|
* outbound 定义任务的分发行为。
|
|
|
* 路由 一个任务进入taskHUB后,按outbound的顺序,依次检查任务的状态符合哪个outbound所定义的规则。任务由第一个符合规则的outbound分发。
|
|
|
|
|
|
#### 配置文件结构
|
|
|
### 配置文件结构
|
|
|
|
|
|
```yaml
|
|
|
#子配置文件引用
|
... | ... | @@ -124,7 +122,7 @@ outbound: |
|
|
logging:
|
|
|
|
|
|
```
|
|
|
#### 配置分离(include)
|
|
|
### 配置分离(include)
|
|
|
使用include可以将配置文件拆分成若干相对独立的部分。
|
|
|
在子配置文件中,可以定义inbound和outbound。最终的结果是将所有子配置文件和主配置文件中的inbound和outbound合并在一起。
|
|
|
合并过程是依子配置文件文件名按子母排序升序依次进行。因此,所有outbound最终的顺序由文件名顺序和在文件内的顺序共同决定。
|
... | ... | @@ -162,7 +160,7 @@ outbound: |
|
|
* o_b_2
|
|
|
* o_b_1
|
|
|
|
|
|
#### inbound的配置
|
|
|
### inbound的配置
|
|
|
**selector**
|
|
|
筛选条件列表。输入任务只要满足列表中任一筛选条件就被接收进入任务路由。
|
|
|
|
... | ... | @@ -233,6 +231,6 @@ inbound: |
|
|
threads: 8
|
|
|
```
|
|
|
|
|
|
#### 任务分发测试接口
|
|
|
### 任务分发测试接口
|
|
|
|
|
|
#### 测试接口 |
|
|
\ No newline at end of file |
|
|
### 测试接口 |
|
|
\ No newline at end of file |