使用Rxjava對訂單支付結果進行輪詢

2021-09-11 05:50:38 字數 693 閱讀 8338

/**關鍵**片段**/

//輪詢伺服器次數

private int checktime = 0;

private boolean orderpaysuccess = false;

public void checkpaystatue()

return observable.error(new throwable("輪詢結束"));

}// 若輪詢次數<4次,則傳送1next事件以繼續輪詢

// 注:此處加入了delay操作符,作用 = 延遲一段時間傳送(此處設定 = 1.5s),以實現輪詢間間隔設定

return observable.just(1).delay(1500, timeunit.milliseconds);

}});

}}).subscribeon(schedulers.io()) // 切換到io執行緒進行網路請求

.observeon(androidschedulers.mainthread()) // 切換回到主線程 處理請求結果

.subscribe(new baseobserver(_mactivity, mdisposable) else

}@override

protected void onfailure(int code, string msg)

});}

使用DelayQueue實現訂單限時支付處理

delayqueue是乙個無界阻塞佇列,佇列中的元素必須實現delayed介面,在建立元素時可以指定多久才能從佇列中獲取當前元素。只有在延遲期滿時才能從佇列中提取元素。delayqueue可以用作快取系統的設計,可以用delayqueue儲存快取元素的有效期,使用乙個執行緒迴圈查詢delayqueu...

使用lucene對搜尋結果排序

lucene預設根據匹配度對搜尋結果降序排,如果對某個域進行排序?通常分兩步 step1 建索引時 newfield audittime row.get audittime tostring 關鍵點是你需要排序的字段建索引時應該採用 field.index.un tokenized,至於需不需要 f...

使用lucene對搜尋結果排序

lucene預設根據匹配度對搜尋結果降序排,如果對某個域進行排序?通常分兩步 step1 建索引時 newfield audittime row.get audittime tostring 關鍵點是你需要排序的字段建索引時應該採用 field.index.un tokenized,至於需不需要 f...