shuzhiren-comfyui/任务队列后端/outside/record.js

75 lines
3.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { addConsumptionHistory } from '../school/api.js'
import outside from './outPlatforms/outside.js'
import { modelData,CostData } from '../config/Config.js';
async function getTaskResult(task) { // 创建一个函数用于获取runninghub的任务结果得到其费用
const body = JSON.stringify({
"apiKey": modelData[task.info.AIGC][task.info.platform].apikey,
"taskId": task.remoteTaskId
})
console.log('获取任务结果参数', task.remoteTaskId)
for (let i = 0; i < 13; i++){
const response = await fetch('https://www.runninghub.cn/task/openapi/outputs', {
method: 'POST',
headers:{'Host':'www.runninghub.cn','Content-Type':'application/json'},
body: body
});
const res = await response.json()
console.log(res)
if ( res.code === 0 && res.msg === 'success'){
return res
}
await new Promise(resolve => setTimeout(resolve, 5000));
}
// console.log('生成时长:',res.data.taskCostTime,'三方平台费用:',res.data.thirdPartyConsumeMoney)
}
async function defaultBody(task, file) {
return {
platformCode: `${task.info.platformId}`,
platformId: task.info.platformId,
taskRootId: task.info.taskRootId, // 根任务ID
parentTaskId: task.info.taskType === 1 ? '0' : (task.info.parentTaskId || '0'), // 记录父任务 ID
taskId: task.taskId,
title: task.info.title || '',
modelName: task.info.modelName || '',
chargeCode: task.info.chargeCode,
quantity: 1,
status: file.type, // 需要在获取结果后判断 1成功 2失败
fileType: task.info.fileType || 'image', // 文件类型
fileUrl: file.files || '',
chargeType: task.info.chargeType, // 需要在提交时判断
taskType: task.info.taskType, //任务类型1 - 初始模特穿衣生成仅根任务可用2 - 对话修改3 - 生成视频4 - 生成模特5 - 生成姿势6 - 生成背景
type: 2, // 需要在提交时判断
actualAmount: task.info.cost,
createTime: task.info.createTime || '', // 创建时间
parentCreateTime: task.info.parentCreateTime || '', // 父任务创建时间
parentIndex: task.info.parentIndex || 0 // 父任务图片索引
}
}
export async function record(task) { // 创建一个函数,用于记录任务
const file = await outside[task.info.platform].getTaskResult(task.resultData)
let errorMessage = null
if(file.type === 2){
errorMessage = file.message
return false
}
if (task.info.platform === 'runninghub' && task.info.type === 2){
let res = null
res = await getTaskResult(task)
// console.log('生成时长:',res.data.taskCostTime,'三方平台费用:',res.data.thirdPartyConsumeMoney)
task.info.cost = Math.round(Number(res.data[0].taskCostTime) * 100 * CostData[task.info.platform] + Number(res.data[0].thirdPartyConsumeMoney || 0) * 100)
console.log('任务费用:',task.info.cost)
}
let body = null
body = await defaultBody(task, file)
console.log('记录信息\n', body)
const success = await addConsumptionHistory(body,task.token)
console.log('记录任务成功', success.data)
return 'succes'; // 返回 后端任务ID与对应的平台任务ID “后端任务ID” 该ID为当前后端创建非外部平台返回的任务ID
}