Class LocalFileJournal
java.lang.Object
io.leandev.appfuse.file.local.LocalFileJournal
- All Implemented Interfaces:
FileJournal
本地檔案系統的 FileJournal 實作(自訂 TSV 格式,append-only)
日誌與檔案存於同一介質、同一失敗域:
{basePath}/journal/{partition}/{yyyy-MM-dd}.log
本地檔案系統支援原子 append,故同一天的事件累積於單一 .log 檔(每行一筆,格式見
JournalLineCodec)。寫入採 best-effort:失敗只記 log、不中斷業務流程。
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic LocalFileJournal.Builderbuilder()列出所有有日誌的 partition,供FileOrphanSweepTask逐區對帳readEntries(String partition) 讀取指定 partition 的所有事件,供FileOrphanSweepTask對帳使用voidrecord(JournalEntry entry) 記錄一筆檔案交易事件(append-only,不得拋出例外中斷業務流程)
-
Method Details
-
builder
-
record
Description copied from interface:FileJournal記錄一筆檔案交易事件(append-only,不得拋出例外中斷業務流程)- Specified by:
recordin interfaceFileJournal- Parameters:
entry- 事件
-
readEntries
Description copied from interface:FileJournal讀取指定 partition 的所有事件,供FileOrphanSweepTask對帳使用- Specified by:
readEntriesin interfaceFileJournal- Parameters:
partition- 儲存分區鍵- Returns:
- 事件清單(依時間排序;無資料時回傳空清單)
-
partitions
Description copied from interface:FileJournal列出所有有日誌的 partition,供FileOrphanSweepTask逐區對帳- Specified by:
partitionsin interfaceFileJournal- Returns:
- partition 清單(無資料時回傳空清單)
-