2017-01-02 108 views
1

1)在最chronicle queue v4顯示test patterns某種形式的DocumentContext.isPresent()busy state checking,當ExcerptTailer位於隊列的末尾和代碼正在等待爲新條目從ExcerptAppender到達。紀事隊列中的事件聽者

2)是否有一個內置的編年史隊列機制異步appender -> tailer通知,使得在收到通知的事件,給tailer保證具有通過appender發佈至少一個條目,準備讀

3)如果不是,推薦模式是否執行event listener?請分享一個工作的例子?

回答

2

實現偵聽器模式的推薦模式是使用methodReader/methodWriter,它可以在您讀取的地方啓動時處理時間戳。

我建議你從下往上看這些https://vanilla-java.github.io/tag/Microservices/開始第1部分

對於零售商,它知道有一個消息的唯一途徑是通過讀取/輪詢隊列的末尾。如果appender和tailer處於相同的過程中,您可以使用您選擇的不同機制。

+0

a)re:**使用methodReader/methodWriter ** - from [part-2](https://vanilla-java.github.io/2016/03/24/Microservices-in-the-Chronicle- world-Part-2.html)和[MethodReader.readOne()](https://github.com/OpenHFT/Chronicle-Wire/blob/master/src/main/java/net/openhft/chronicle/wire/MethodReader .java#L198)似乎'readOne()'在語義上是相同的'isPresent()',即沒有事件通知或阻塞正確? –

+0

B)re:**在同一個過程中你可以使用不同的機制** - 在這種情況下,什麼是'ExcerptAppender' /'ExcerptTailer'同步契約?即'appender ... doc.close()'是一個保證,當'appender ... doc.close()'通知後,'tailer ... doc.isPresent()'會看到變化。 –

+0

@AndreiPozolotin正確。沒有阻止行爲。 –