feat(scheduler): 财务管道自动注册、水位记录与后台状态页
- 老配置读取时自动补齐六个管道任务,升级后无需手工添加 - 每个管道运行后写水位与 last_success_at,失败写 last_error - 新增 GET /admin/fulfillment/pipeline/status 与单步重跑 - 后台「履约渠道 → 管道状态」展示启停、水位、最近执行与错误 - 定时任务管理接口不再丢弃管道自己的 config 字段
This commit is contained in:
@@ -17,7 +17,14 @@ import {
|
||||
upsertChannelRule,
|
||||
} from '../../services/fulfillment/channel-assign-service.js'
|
||||
import { listExceptionQueue } from '../../services/cost-center/cost-exception-service.js'
|
||||
import { runFinancePipelineOnce } from '../../services/scheduler/finance-pipeline-jobs.js'
|
||||
import {
|
||||
runFinancePipelineOnce,
|
||||
runSingleFinancePipeline,
|
||||
} from '../../services/scheduler/finance-pipeline-jobs.js'
|
||||
import {
|
||||
getFinancePipelineStatus,
|
||||
isFinancePipelineName,
|
||||
} from '../../services/scheduler/finance-pipeline-status.js'
|
||||
import { bodyOf } from './request-helpers.js'
|
||||
import { createJsonHandler, requireAdminPermission, requireAdminRoles } from './session.js'
|
||||
|
||||
@@ -185,6 +192,16 @@ router.delete(
|
||||
}),
|
||||
)
|
||||
|
||||
router.get(
|
||||
'/fulfillment/pipeline/status',
|
||||
requireAdminPermission('finance.view'),
|
||||
createJsonHandler(() => getFinancePipelineStatus(), {
|
||||
successMessage: 'ok',
|
||||
errorMessage: '读取管道状态失败',
|
||||
scope: '[admin/fulfillment/pipeline/status]',
|
||||
}),
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/fulfillment/pipeline/run',
|
||||
requireAdminPermission('finance.config'),
|
||||
@@ -192,6 +209,15 @@ router.post(
|
||||
async (req) => {
|
||||
const body = bodyOf(req)
|
||||
const days = Number(body.days)
|
||||
// 指定 pipeline 时只跑单步,便于排障与补跑。
|
||||
if (body.pipeline) {
|
||||
if (!isFinancePipelineName(body.pipeline)) {
|
||||
throw new Error(`未知管道:${String(body.pipeline)}`)
|
||||
}
|
||||
return runSingleFinancePipeline(body.pipeline, {
|
||||
config: Number.isFinite(days) ? { days } : {},
|
||||
})
|
||||
}
|
||||
return runFinancePipelineOnce({ days: Number.isFinite(days) ? days : 3 })
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user