0

クロニクル キューにさまざまな種類のメッセージを書き込み、その種類に応じてコンシューマーでメッセージを処理したいと考えています。

どうやってやるの?

4

3 に答える 3

1

これを達成するために、私はワイヤーを使用します

try (DocumentContext dc = appender.writingDocument())
{
    final Wire wire = dc.wire();
    final ValueOut v = wire.getValueOut();
    valueOut.typePrefix(m.getClass());
    valueOut.marshallable(m);
}

読み返してみると:

try (DocumentContext dc = tailer.readingDocument())
{
   final Wire wire = dc.wire();
   final ValueIn valueIn = wire.getValueIn();
   final Class clazz = valueIn.typePrefix();
   // msgPool is a prealloacted hashmap containing the messages I read
   final ReadMarshallable readObject = msgPool.get(clazz);  
   valueIn.readMarshallable(readObject)
   // readObject can now be used
}
于 2017-01-12T10:38:59.857 に答える
0

汎用オブジェクトを読み書きすることもできます。これは、独自のスキームを使用するよりも少し遅くなりますが、書いた型を常に読み取る簡単な方法です。

于 2015-08-16T15:43:10.333 に答える