US07-04: Prove Concurrency and Crash Recovery (#86)
This commit was merged in pull request #86.
This commit is contained in:
@@ -37,6 +37,7 @@ from sqlalchemy import select, update
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
from photo_pipeline.config import Config
|
||||
from photo_pipeline.faults import UPLOAD_ACCEPTED, maybe_fault
|
||||
from photo_pipeline.integrations import immich_go
|
||||
from photo_pipeline.models import UploadBatch, UploadItem
|
||||
from photo_pipeline.services.hashing import sha1_file
|
||||
@@ -236,6 +237,10 @@ class UploadBatchService:
|
||||
error = ("uploader_failed", f"immich-go exited with {result['exit_code']}")
|
||||
item_state = ItemState.FAILED
|
||||
|
||||
# The uploader is done and Immich may already hold every file, but nothing
|
||||
# about that is durable yet — the control point for "accepted, outcome not
|
||||
# recorded" (US07-04). Recovery must answer ``unknown_requires_verification``.
|
||||
maybe_fault(UPLOAD_ACCEPTED)
|
||||
self._finish(batch_id, token=token, state=state, error=error, result=result)
|
||||
if item_state:
|
||||
self._set_items(batch_id, item_state)
|
||||
|
||||
Reference in New Issue
Block a user