Class AzureFileJournal
java.lang.Object
io.leandev.appfuse.file.azure.AzureFileJournal
- All Implemented Interfaces:
FileJournal
Azure Blob 的 FileJournal 實作
採「一筆事件一個 Blob」:
{blobPrefix}/journal/{partition}/{epochMillis}-{uuid}
Blob 內容為 JournalLineCodec 序列化的單行。readEntries 以 listBlobs 列出後逐一下載。
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic AzureFileJournal.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 清單(無資料時回傳空清單)
-