有沒有辦法將Chronicle Queue中的某個循環轉換爲時間戳?我檢查了4.5 apidocs,但沒有發現任何東西。Chronicle Queue:將循環整數轉換爲時間戳,反之亦然
0
A
回答
2
週期數是自紀元以來的天數(或小時數)。如果你的時代爲0,那麼時間戳
Date date = new Date(TimeUnit.DAYS.toMillis(cycle));
你可以做反向與
long cycle = TimeUnit.MILLIS(System.currentTimeMillis()).toDays()
如果你有一個小時週期,可以用上述小時更換天。
使用內置函數,您可以對任何滾動循環執行此操作。
int cycle = rollCycle.current(() -> time, epoch);
1
要用1個字來回答你的問題,「不」不可能,但它的價值意識到。如果您使用默認值,即每日滾動,則記錄隊列將每天爲其數據創建一個新的隊列文件。週期數與另一個文件的日期(但不是時間)直接相關。注意:從週期編號中計算當天的計算必須考慮編年史隊列中設置的EPOCH時間。如果這個粒度級別足夠了(換句話說,你需要哪一天但不是那一天的時間),那麼Peter的帖子就會告訴你如何從週期數中得到一天。還有其他方法可以找出何時寫入不使用循環編號的條目。如果您希望我採用其他方式,請告訴我。
謝謝!你會考慮將此添加到RollCycle界面嗎? – vasquez
@vasquez你能澄清這是用來做什麼的,也許有另一種方式? –
檔案和隊列文件的索引。我確實看過StoreListener,但目前我使用了幾個Queue實例,編寫和閱讀,並且我想延遲存檔,如1-2天。 – vasquez