私はシステムにクロニクルキューを実装しようとしていますが、ファイルのローリングに関する問題がありましたが、プロセスのローカルタイムゾーンごとに特定の時刻に質問がありました。私は、ロールサイクルを指定する方法に関するいくつかの記事を読むが、ドキュメントごとにエポックタイムはUTCの真夜中に働く。ロールサイクルを設定するために何をする必要がありますか?毎日午後5時に、プロセスのローカルタイムゾーンを実行していますか?助言がありますか?クロニクルロールファイル毎日
public class TestRollCycle {
public class TestClass implements TestEvent {
private int counter = 1;
@Override
public void setOrGetEvent(String event) {
System.out.println("Counter Read Value: " + counter);
counter++;
}
}
public interface TestEvent {
void setOrGetEvent(String event);
}
@Test
public void testRollProducer() {
int insertCount = 1;
String pathOfFile = "rollPath";
// Epoch is 5:15PM EDT
SingleChronicleQueue producerQueue = SingleChronicleQueueBuilder.binary(pathOfFile).epoch(32940000).build();
ExcerptAppender myAppender = producerQueue.acquireAppender();
TestEvent eventWriter = myAppender.methodWriter(TestEvent.class);
while (true) {
String testString = "Insert String";
eventWriter.setOrGetEvent(testString);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Counter Write Value: " + insertCount);
insertCount++;
}
}
@Test
public void testRollConsumer() throws InterruptedException {
String pathOfFile = "rollPath";
// Epoch is 5:15PM EDT
SingleChronicleQueue producerQueue = SingleChronicleQueueBuilder.binary(pathOfFile).epoch(32940000).build();
TestClass myClass = new TestClass();
ExcerptTailer trailer = producerQueue.createTailer();
MethodReader methodReader = trailer.methodReader(myClass);
while (true) {
if (!methodReader.readOne()) {
Thread.sleep(1000);
} else {
//System.out.println(trailer.index());
}
}
}
}
ああ...ありがとう。確認して確認する必要があります。関連する別の質問では、UTCの深夜のデフォルトロール機能を使用していると言えますが、切り替えの瞬間の状態はどうなっていますか?私は、一定のストリームのメッセージがその時間中に永続化するのを待っている場合、メッセージが失われる可能性があること、またはすべてがシームレスであることを意味しますか? – ATO
夏時間の変更を伴うタイムゾーンではなく、固定の時刻としてビルダーに 'epoch'を指定することができます。私たちはあなたが書面を失うかもしれない状況、またはメッセージを読んでいないことを知りません。 –
ピーター - 私は以下のことをしました。ロールのベンチマークはUTC真夜中で、私は午後9時(UTC)を意味する5PM EDTでロールを発生させたいからです。だから、私は32400000ミリ秒(== 9時間)を指定しました。 3.30PM EDTで私のサンプルを始めました。私は5PM EDTで新しい日に起こるべき役割を期待していましたが、決して起こらなかったのです。これは期待されていますか?他に言及されたドキュメント。 – ATO