41 lines
1.9 KiB
SQL
41 lines
1.9 KiB
SQL
-- =============================================================================
|
||||
|
|
-- 刷脸照片保留期(最多 1 个月)+ 定期清理任务登记
|
|||
|
|
-- 清理范围:apt_tablet_face_photo 中 COALESCE(uploaded_at, captured_at, create_time)
|
|||
|
|
-- 早于 now - retentionDays 的记录:先删文件,再物理删记录。
|
|||
|
|
-- 保留天数由 apt.photo.retention-days 控制(默认 30,上限按业务 1 个月)。
|
|||
|
|
-- 任务:aptPhotoPurgeTask.purge(),建议每天 03:30(避开叫乘高峰)。
|
|||
|
|
-- 幂等:sys_job 按 invoke_target 判重,可重复执行。
|
|||
|
|
-- =============================================================================
|
|||
|
|
SET NAMES utf8mb4;
|
|||
|
|
|
|||
|
|
INSERT INTO sys_job
|
|||
|
|
(job_name, job_group, invoke_target, cron_expression,
|
|||
|
|
misfire_policy, concurrent, status, create_by, create_time, remark)
|
|||
|
|
SELECT '刷脸照片过期清理(保留 30 天)',
|
|||
|
|
'SYSTEM',
|
|||
|
|
'aptPhotoPurgeTask.purge()',
|
|||
|
|
'0 30 3 * * ?',
|
|||
|
|
'1',
|
|||
|
|
1,
|
|||
|
|
'1',
|
|||
|
|
'IT-5',
|
|||
|
|
NOW(3),
|
|||
|
|
'每天 03:30 清理超过 apt.photo.retention-days(默认 30 天)的照片文件与记录'
|
|||
|
|
FROM DUAL
|
|||
|
|
WHERE NOT EXISTS (
|
|||
|
|
SELECT 1 FROM sys_job WHERE invoke_target = 'aptPhotoPurgeTask.purge()'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
-- -----------------------------------------------------------------------------
|
|||
|
|
-- 校验
|
|||
|
|
-- -----------------------------------------------------------------------------
|
|||
|
|
SELECT '=== 44. 清理任务登记(应 1 行,status=1)===' AS section;
|
|||
|
|
SELECT job_id, job_name, invoke_target, cron_expression, status
|
|||
|
|
FROM sys_job
|
|||
|
|
WHERE invoke_target = 'aptPhotoPurgeTask.purge()';
|
|||
|
|
|
|||
|
|
SELECT '=== 45. 当前照片记录与最老时间 ===' AS section;
|
|||
|
|
SELECT COUNT(*) AS photos,
|
|||
|
|
MIN(COALESCE(uploaded_at, captured_at, create_time)) AS oldest_at,
|
|||
|
|
SUM(COALESCE(uploaded_at, captured_at, create_time) < DATE_SUB(NOW(3), INTERVAL 30 DAY)) AS expired
|
|||
|
|
FROM apt_tablet_face_photo;
|