validate completed AI results
This commit is contained in:
@@ -68,8 +68,11 @@ export function claimAiJob(clock=Date.now()) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
export const heartbeatAiJob=(id,runId)=>dbWork(db=>db.prepare("UPDATE ai_jobs SET heartbeat=? WHERE id=? AND run_id=? AND state='running'").run(Date.now(),id,runId).changes>0);
|
export const heartbeatAiJob=(id,runId)=>dbWork(db=>db.prepare("UPDATE ai_jobs SET heartbeat=? WHERE id=? AND run_id=? AND state='running'").run(Date.now(),id,runId).changes>0);
|
||||||
export const finishAiJob=(id,runId,result,error=null)=>dbWork(db=>db.prepare("UPDATE ai_jobs SET state=?,result=?,error=?,updated_at=? WHERE id=? AND run_id=? AND state='running'")
|
export const finishAiJob=(id,runId,result,error=null)=>{
|
||||||
.run(error?'failed':'completed',error?null:JSON.stringify(result),error,new Date().toISOString(),id,runId).changes>0);
|
if(!error && (!result || typeof result!=='object' || Array.isArray(result))) throw new Error('AI sonucu geçersiz; iş tamamlanmadı.');
|
||||||
|
return dbWork(db=>db.prepare("UPDATE ai_jobs SET state=?,result=?,error=?,updated_at=? WHERE id=? AND run_id=? AND state='running'")
|
||||||
|
.run(error?'failed':'completed',error?null:JSON.stringify(result),error,new Date().toISOString(),id,runId).changes>0);
|
||||||
|
};
|
||||||
export const cancelAiJob=(email,id)=>dbWork(db=>db.prepare("UPDATE ai_jobs SET state='cancelled',error=NULL,updated_at=? WHERE id=? AND email=? AND state IN ('queued','running','interrupted','failed')").run(new Date().toISOString(),id,email).changes>0);
|
export const cancelAiJob=(email,id)=>dbWork(db=>db.prepare("UPDATE ai_jobs SET state='cancelled',error=NULL,updated_at=? WHERE id=? AND email=? AND state IN ('queued','running','interrupted','failed')").run(new Date().toISOString(),id,email).changes>0);
|
||||||
export const retryAiJob=(email,id)=>dbWork(db=>{
|
export const retryAiJob=(email,id)=>dbWork(db=>{
|
||||||
db.exec('BEGIN IMMEDIATE');
|
db.exec('BEGIN IMMEDIATE');
|
||||||
|
|||||||
Reference in New Issue
Block a user