llmage/wwwroot/api/retry_accounting.dspy

31 lines
1.2 KiB
Plaintext

result = {'success': False, 'message': ''}
try:
dbname = get_module_dbname('llmage')
luid = params_kw.get('id') or params_kw.get('llmusageid')
if not luid:
result['message'] = '缺少llmusageid参数'
else:
async with DBPools().sqlorContext(dbname) as sor:
await sor.U('llmusage', {
'id': luid,
'accounting_status': 'created'
})
now = curDateString() + ' ' + timestampstr().split(' ')[1] if ' ' not in curDateString() else curDateString()
await sor.execute("""
UPDATE llmusage_accounting_failed
SET handled = '1',
retry_count = IFNULL(retry_count, 0) + 1,
handled_time = ${now}$,
handled_note = CONCAT(IFNULL(handled_note, ''), '[', ${now}$, '] 触发重试; ')
WHERE llmusageid = ${luid}$
""", {'luid': luid, 'now': now})
result['success'] = True
result['message'] = '已重置为待记账状态,后台循环将重新处理'
except Exception as e:
result['message'] = str(e)
return json.dumps(result, ensure_ascii=False)