chore: improve image worker logging

This commit is contained in:
QiuSW
2026-07-09 11:57:06 +08:00
parent d79bd6fae9
commit 20a73440af
5 changed files with 70 additions and 2 deletions
+30
View File
@@ -1,5 +1,6 @@
import uuid
import base64
import io
import json
import tempfile
from datetime import timedelta
@@ -13,6 +14,7 @@ from django.conf import settings
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.core.cache import cache
from django.core.management import call_command
from django.test import TestCase, override_settings
from django.urls import path
from django.utils import timezone
@@ -1585,6 +1587,34 @@ class GenerateApiTests(TestCase):
self.assertEqual(poll.data["status"], ImageGenerationTask.Status.FAILED)
self.assertEqual(poll.data["error"]["code"], "upstream_timeout")
def test_run_image_tasks_logs_failed_task_alias_error_and_duration(self):
self.provider.image_error = requests.Timeout("image upstream deadline exceeded")
response = self.post_with_provider(
"/api/v1/generate/image/tasks",
{"prompt": "生成图片", "model": self.image_alias, "resolution": "1K"},
)
out = io.StringIO()
with patch("apps.api.generation.get_provider", return_value=self.provider):
call_command(
"run_image_tasks",
"--once",
"--worker-id",
"worker-log",
stdout=out,
)
task = ImageGenerationTask.objects.get(task_id=response.data["task_id"])
output = out.getvalue()
self.assertEqual(task.status, ImageGenerationTask.Status.FAILED)
self.assertIn("event=image_task_processed", output)
self.assertIn(f"task_id={task.task_id}", output)
self.assertIn(f"alias={self.image_alias}", output)
self.assertIn("status=failed", output)
self.assertIn("error_code=upstream_timeout", output)
self.assertRegex(output, r"duration_ms=\d+")
self.assertNotIn("生成图片", output)
def test_async_image_reaper_fails_stale_running_task_and_refunds(self):
response = self.post_with_provider(
"/api/v1/generate/image/tasks",