Files
BiliNote/backend/app/tasks/note_tasks.py
思诺特 3784e15670 feat(core): 实现 Celery任务异步生成笔记
- 新增 Celery 配置文件 celery_app.py
- 创建 note_tasks.py 文件,定义生成笔记的 Celery 任务
- 修改 note_router,使用 Celery 任务异步处理笔记生成
- 重构 bili_downloader 和 youtube_downloader,支持多质量选择和错误处理
- 更新 .env.example,添加 Celery 配置项
2025-04-15 12:19:14 +08:00

28 lines
855 B
Python

# app/tasks/note_tasks.py
import os
import json
from app.services.note import NoteGenerator
from app.core.celery_app import celery_app
from dataclasses import asdict
from app.enmus.note_enums import DownloadQuality
from app.utils.note_helper import save_note_to_file
NOTE_OUTPUT_DIR = "note_results"
@celery_app.task(name="generate_note_task")
def generate_note_task(task_id: str, video_url: str, platform: str, quality: str, link: bool = False, screenshot: bool = False):
try:
note = NoteGenerator().generate(
video_url=video_url,
platform=platform,
quality=DownloadQuality(quality),
task_id=task_id,
link=link,
screenshot=screenshot
)
save_note_to_file(task_id, note)
except Exception as e:
save_note_to_file(task_id, {"error": str(e)})