Java 重試框架 Sisyphus 配置的兩種方式_第1頁(yè)
Java 重試框架 Sisyphus 配置的兩種方式_第2頁(yè)
Java 重試框架 Sisyphus 配置的兩種方式_第3頁(yè)
Java 重試框架 Sisyphus 配置的兩種方式_第4頁(yè)
Java 重試框架 Sisyphus 配置的兩種方式_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Java重試框架Sisyphus配置的兩種方式*1.實(shí)際需要,只允許放在方法上。

*2.如果放在接口上,是否所有的子類都生效?為了簡(jiǎn)單明確,不提供這種實(shí)現(xiàn)。

*3.保持注解和接口的一致性。{@linkcom.github.houbb.sisyphus.api.core.Retry}接口

*@authorbinbin.hou

*@since0.0.3

@Documented

@Inherited

@Target(ElementType.METHOD)

@Retention(RetentionPolicy.RUNTIME)

@RetryAble(DefaultRetryAbleHandler.class)

public@interfaceRetry{

/**

*重試類實(shí)現(xiàn)

*@return重試

*@since0.0.5

Classextendscom.github.houbb.sisyphus.api.core.Retryretry()defaultDefaultRetry.class;

/**

*最大嘗試次數(shù)

*1.包含方法第一次正常執(zhí)行的次數(shù)

*@return次數(shù)

intmaxAttempt()default3;

/**

*重試觸發(fā)的場(chǎng)景

*@return重試觸發(fā)的場(chǎng)景

ClassextendsRetryConditioncondition()defaultExceptionCauseRetryCondition.class;

/**

*監(jiān)聽器

*1.默認(rèn)不進(jìn)行監(jiān)聽

*@return監(jiān)聽器

ClassextendsRetryListenlisten()defaultNoRetryListen.class;

/**

*恢復(fù)操作

*1.默認(rèn)不進(jìn)行任何恢復(fù)操作

*@return恢復(fù)操作對(duì)應(yīng)的類

ClassextendsRecoverrecover()defaultNoRecover.class;

/**

*等待策略

*1.支持指定多個(gè),如果不指定,則不進(jìn)行任何等待,

*@return等待策略

RetryWait[]waits()default{};

4.3RetryWait

用于指定重試的等待策略。

packagecom.github.houbb.sisyphus.annotation.annotation;

importcom.github.houbb.sisyphus.annotation.annotation.metadata.RetryWaitAble;

importcom.github.houbb.sisyphus.annotation.handler.impl.DefaultRetryWaitAbleHandler;

importcom.github.houbb.sisyphus.core.constant.RetryWaitConst;

importcom.github.houbb.sisyphus.core.support.wait.NoRetryWait;

importjava.lang.annotation.*;

*重試等待策略

*1.為了對(duì)應(yīng)重試策略,所有的內(nèi)置注解應(yīng)該實(shí)現(xiàn)當(dāng)前的注解。

*2.是否允許自定義注解?

*當(dāng)注解+對(duì)象同時(shí)出現(xiàn)的時(shí)候,視為組合。

*@authorbinbin.hou

*@since0.0.3

@Retention(RetentionPolicy.RUNTIME)

@Inherited

@Documented

@Target(ElementType.ANNOTATION_TYPE)

@RetryWaitAble(DefaultRetryWaitAbleHandler.class)

public@interfaceRetryWait{

/**

*默認(rèn)值

*1.fixed模式,則對(duì)應(yīng)固定等待時(shí)間

*2.遞增

*@return默認(rèn)值

longvalue()defaultRetryWaitConst.VALUE_MILLS;

/**

*最小值

*@return最小值

longmin()defaultRetryWaitConst.MIN_MILLS;

/**

*最大值

*@return最大值

longmax()defaultRetryWaitConst.MAX_MILLS;

/**

*影響因數(shù)

*1.遞增重試,默認(rèn)為{@linkRetryWaitConst#INCREASE_MILLS_FACTOR}

*2.指數(shù)模式。默認(rèn)為{@linkRetryWaitConst#MULTIPLY_FACTOR}

*@return影響因數(shù)

doublefactor()defaultDouble.MIN_VALUE;

/**

*指定重試的等待時(shí)間class信息

*@return重試等待時(shí)間class

Classextendscom.github.houbb.sisyphus.api.support.wait.RetryWaitretryWait()defaultNoRetryWait.class;

5、注解的使用

定義好了注解,肯定要有注解的相關(guān)使用。

關(guān)于注解的使用,主要有兩種方式。

5.1Proxy+CGLIB

基于代理模式和字節(jié)碼增強(qiáng)。

如果是項(xiàng)目中沒有使用spring,直接使用這種方式比較方便。

5.2Spri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論