refactor: enhance logging and task management in document storage and upload tasks
This commit is contained in:
@@ -4,18 +4,31 @@ from app.celery_app import celery
|
||||
from app.tasks.upload_to_dropbox import upload_to_dropbox
|
||||
from app.tasks.upload_to_nextcloud import upload_to_nextcloud
|
||||
from app.tasks.upload_to_paperless import upload_to_paperless
|
||||
from app.utils import task_logger, log_task
|
||||
|
||||
@celery.task
|
||||
@log_task("send_to_all_destinations")
|
||||
def send_to_all_destinations(file_path: str):
|
||||
"""
|
||||
Fires off tasks to upload a single file to Dropbox, Nextcloud, and Paperless.
|
||||
These tasks run in parallel (Celery returns immediately from each .delay()).
|
||||
"""
|
||||
upload_to_dropbox.delay(file_path)
|
||||
upload_to_nextcloud.delay(file_path)
|
||||
upload_to_paperless.delay(file_path)
|
||||
task_logger(f"Sending {file_path} to all destinations", step_name="send_to_all")
|
||||
|
||||
dropbox_task = upload_to_dropbox.delay(file_path)
|
||||
nextcloud_task = upload_to_nextcloud.delay(file_path)
|
||||
paperless_task = upload_to_paperless.delay(file_path)
|
||||
|
||||
task_logger(f"Enqueued file for all destinations: Dropbox (task: {dropbox_task.id}), "
|
||||
f"Nextcloud (task: {nextcloud_task.id}), Paperless (task: {paperless_task.id})",
|
||||
step_name="send_to_all", status="success")
|
||||
|
||||
return {
|
||||
"status": "All upload tasks enqueued",
|
||||
"file_path": file_path
|
||||
"file_path": file_path,
|
||||
"task_ids": {
|
||||
"dropbox": dropbox_task.id,
|
||||
"nextcloud": nextcloud_task.id,
|
||||
"paperless": paperless_task.id
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user