關於disruptor的事件釋出的返回結果
諸位大蝦:
當前在做Disruptor(ringBuffer)的學習,對RingBuffer釋出事件(EventTranslator)後如何獲得經過事件處理器(EventProcessor)的返回結果,存在一些問題,特向諸位請教一下。
比如我當下的事件類似TestEvent, 我設定的處理器為PhaseOneEventHandle、PhaseTwoEventHandler、PhaseThreeEventHandler(如下)整合成一個職責鏈的處理方式
public static class PhaseOneEventHandler implements EventHandler<TestEvent> {
@Override
public void onEvent(TestEvent event, long sequence, boolean endOfBatch) throws Exception {
logger.info("====result1====" + event.getParam() + "," + sequence);
event.setResult1("phaseone===" + System.currentTimeMillis() + ",init===" + event.getParam());
}
}
測試程式碼為
public void testPublish() {
int n = 10;
for(int i = 0 ; i <n ; i ++) {
this.eventPublisher.publish(new EventTranslator<TestEvent>() {
@Override
public TestEvent translateTo(TestEvent event, long sequence) {
event.setParam(String.valueOf(System.nanoTime()));
return event;
}
})
}
}
現在透過publish沒有透過ringBuffer提取返回結果的時候 都是正常和正確的
但如何提取每次publish的返回結果呢(我發現不能直接使用 ringBuffer.get(sequence)的方式)
請諸位大俠有過類似除錯經驗的請不吝賜教
jerryscott2012
當前在做Disruptor(ringBuffer)的學習,對RingBuffer釋出事件(EventTranslator)後如何獲得經過事件處理器(EventProcessor)的返回結果,存在一些問題,特向諸位請教一下。
比如我當下的事件類似TestEvent, 我設定的處理器為PhaseOneEventHandle、PhaseTwoEventHandler、PhaseThreeEventHandler(如下)整合成一個職責鏈的處理方式
public static class PhaseOneEventHandler implements EventHandler<TestEvent> {
@Override
public void onEvent(TestEvent event, long sequence, boolean endOfBatch) throws Exception {
logger.info("====result1====" + event.getParam() + "," + sequence);
event.setResult1("phaseone===" + System.currentTimeMillis() + ",init===" + event.getParam());
}
}
測試程式碼為
public void testPublish() {
int n = 10;
for(int i = 0 ; i <n ; i ++) {
this.eventPublisher.publish(new EventTranslator<TestEvent>() {
@Override
public TestEvent translateTo(TestEvent event, long sequence) {
event.setParam(String.valueOf(System.nanoTime()));
return event;
}
})
}
}
現在透過publish沒有透過ringBuffer提取返回結果的時候 都是正常和正確的
但如何提取每次publish的返回結果呢(我發現不能直接使用 ringBuffer.get(sequence)的方式)
請諸位大俠有過類似除錯經驗的請不吝賜教
jerryscott2012
相關文章
- 關於獲取事件相應的結果事件
- 通用結果類用於返回響應結果
- JavaScript中Typeof返回的結果JavaScript
- AJAX的同步返回結果值
- MyBatis 返回結果MyBatis
- iOS FMDB有返回結果集和無返回結果集iOS
- MySQL的Explain結果輸出項解釋MySqlAI
- 動態返回結果的檢視
- 關於Disruptor處理流程
- sqlserver關於釋出訂閱replication_subscription的總結SQLServer
- 關於基於 Jdon+Disruptor 的 橫向擴充套件套件
- 分享一個關於Cookie做的實驗結果Cookie
- Python返回多個結果Python
- Python 工匠:讓函式返回結果的技巧Python函式
- Gin 框架 JSON 格式返回結果的使用方式框架JSON
- ADRCI工具的SHOW ALERT TAIL返回過多的結果AI
- 關於分頁查詢結果的快取問題快取
- 手寫Promise中then方法返回的結果或者規律Promise
- 圖解HTTP《四》:返回結果的HTTP狀態碼圖解HTTP
- 以陣列 ans = [kelvin, fahrenheit] 的形式返回結果陣列
- 全域性統一返回結果類
- springboot返回結果包裝統一返回格式Spring Boot
- AOP的具體實踐-簡化結果返回的處理
- 請解釋下NaN === NaN的結果NaN
- 關於統一釋出網路關鍵裝置和網路安全專用產品安全認證和安全檢測結果的公告
- go 如何處理資料庫返回的多結果集Go資料庫
- Mysql效能最佳化(三)--explain返回的結果說明MySqlAI
- MySQL 按指定 ID 順序返回結果MySql
- Mysql按指定 ID 順序返回結果MySql
- item_get_app資料返回結果APP
- 分析後sql語句很快返回結果SQL
- 統一返回結果狀態資訊類
- 釋出一個npm包,用於監控頁面中的所有API請求的狀態和結果NPMAPI
- 關於CAD軟體看圖功能的初步試用結果
- 關於sql server case when ..else ..end結果型別的小議SQLServer型別
- 關於 0 == ‘aa’,返回 1 的面試題面試題
- mysql返回一個結果集的儲存過程小例子MySql儲存過程
- 有趣的ES:解決es返回結果數量限制問題