wistroni40-retry
v0.0.4
Published
Retry when failed
Downloads
2
Readme
wistroni40-retry
Install
npm i wistroni40-retry --save
Table of Contents
Quickstart
/**
* Kafka Producer轉接器
*/
class MyProducer extends ProducerAdapter<HighLevelProducer> {
/**
* @param kafkaProducer Kafka Producer
* @param options 重拋配置
*/
constructor(
protected kafkaProducer: HighLevelProducer,
protected options?: RetryOption
) {
super(kafkaProducer, options);
}
/**
* 發送數據
*
* @method public
* @param payload 要拋送的數據
* @param callback 拋送後的回乎函數
*/
public send(
payload: ProduceRequest[],
callback: (error: any, result: any) => void
): void {
this.kafkaProducer.send(payload, (err, res) => callback(err, res));
}
}
const myProducer = new MyProducer(PRODUCER);
const payload = { data: 100 };
myProducer.publish(payload);
Feature
- 提供拋送者介面,實作介面中的
send
方法,並在送出資料時使用publish
方法,即可在拋送資料失敗時,重新拋送 - 超出失敗上限後將資料備份至特定路徑
API
ProducerAdapter
Abstract Class,拋送者轉接器
constructor
ProducerAdapter的建構值
Parameter | Type | Required | Default | Description
|:-----|:-----:|:-----:|:-----:|:-----|
producer | T | Required | undefined
| 任何拋送數據的物件
options | RetryOption | Optional | Example | 重拋配置,項目可參考
Methods
publish
資料上拋方法,拋送失敗會自動嘗試重新拋送
Parameter | Type | Required | Default | Description
|:-----|:-----:|:-----:|:-----:|:-----|
payload | any | Required | undefined
| 要送出的資料
callback | (error: any, result: any) => void | Required | undefined
| 送出資料後的回乎函
send
Abstract Method,須實作此方法,資料上拋,但失敗不會自動重新拋送
Parameter | Type | Required | Default | Description
|:-----|:-----:|:-----:|:-----:|:-----|
payload | any | Required | undefined
| 要送出的資料
callback | (error: any, result: any) => void | Required | undefined
| 送出資料後的回乎函數
RetryOptions
Interface,重拋配置項目
Properties
Property | Type | Required | Default | Description
|:-----|:-----:|:-----:|:-----:|:-----|
count | number | Optional | 3
| 送出失敗嘗試重拋的上限次數
interval | number | Optional | 5000
| 嘗試重新拋送的時間間距,單位ms
backupDir | string | Optional | './backup'
| 重拋失敗後的資料保存路徑
Producer
Interface,拋送者介面
Methods
send
須實作此方法,資料上拋
Parameter | Type | Required | Default | Description
|:-----|:-----:|:-----:|:-----:|:-----|
payload | any | Required | undefined
| 要送出的資料
callback | (error: any, result: any) => void | Required | undefined
| 送出資料後的回乎函數
RetryTemplate
Abstract Class,重拋機制範本
constructor
RetryTemplate的建構值
Parameter | Type | Required | Default | Description
|:-----|:-----:|:-----:|:-----:|:-----|
producer | Producer | Required | undefined
| 拋送者
options | RetryOption | Optional | Example | 重拋配置,項目可參考
Methods
updateOptions
更新重拋配置
Parameter | Type | Required | Default | Description |:-----|:-----:|:-----:|:-----:|:-----| options | RetryOption | Required | Example | 重拋配置,項目可參考
retry
Abstract Method,須實作此方法,嘗試重新拋送資料
Parameter | Type | Required | Default | Description
|:-----|:-----:|:-----:|:-----:|:-----|
payload | T | Required | undefined
| 要送出的資料
Retry
Class extends from RetryTemplate,重拋機制
Methods
retry
嘗試重新拋送資料
Parameter | Type | Required | Default | Description
|:-----|:-----:|:-----:|:-----:|:-----|
payload | T | Required | undefined
| 要送出的資料