Ai_GirlFriend/xuniYou/检查卡住的任务.sql

76 lines
2.0 KiB
MySQL
Raw Normal View History

2026-03-02 18:57:11 +08:00
-- 检查卡住的任务running状态超过一定时间
-- 1. 查看所有running状态的任务
SELECT
id,
user_id,
lover_id,
task_type,
status,
created_at,
updated_at,
TIMESTAMPDIFF(MINUTE, updated_at, NOW()) as minutes_stuck,
JSON_EXTRACT(payload, '$.song_title') as song_title
FROM nf_generation_tasks
WHERE status = 'running'
ORDER BY created_at DESC;
-- 2. 查看任务385的详细信息
SELECT
id,
status,
error_msg,
attempts,
created_at,
updated_at,
TIMESTAMPDIFF(MINUTE, created_at, NOW()) as total_minutes,
TIMESTAMPDIFF(MINUTE, updated_at, NOW()) as stuck_minutes
FROM nf_generation_tasks
WHERE id = 385\G
-- 3. 查看任务385的payload
SELECT JSON_PRETTY(payload) as payload_detail
FROM nf_generation_tasks
WHERE id = 385\G
-- 4. 查看任务385的分段视频状态
SELECT
sv.id,
sv.segment_id,
sv.status,
sv.error_msg,
sv.dashscope_task_id,
sv.created_at,
sv.updated_at,
TIMESTAMPDIFF(MINUTE, sv.updated_at, NOW()) as stuck_minutes,
ss.segment_index
FROM nf_song_segment_video sv
LEFT JOIN nf_song_segment ss ON sv.segment_id = ss.id
WHERE sv.song_id = (SELECT JSON_EXTRACT(payload, '$.song_id') FROM nf_generation_tasks WHERE id = 385)
AND sv.image_hash = (SELECT JSON_EXTRACT(payload, '$.image_hash') FROM nf_generation_tasks WHERE id = 385)
ORDER BY ss.segment_index;
-- 5. 强制标记超时任务为失败超过30分钟的running任务
-- 注意:这是修复操作,执行前请确认
/*
UPDATE nf_generation_tasks
SET
status = 'failed',
error_msg = '任务超时超过30分钟未完成',
updated_at = NOW()
WHERE status = 'running'
AND TIMESTAMPDIFF(MINUTE, updated_at, NOW()) > 30;
*/
-- 6. 查看最近1小时内的所有任务状态
SELECT
id,
task_type,
status,
error_msg,
created_at,
TIMESTAMPDIFF(MINUTE, created_at, NOW()) as age_minutes
FROM nf_generation_tasks
WHERE created_at > DATE_SUB(NOW(), INTERVAL 1 HOUR)
ORDER BY id DESC;