|
|
|
|
@ -266,20 +266,35 @@ class WorkflowCycleManage:
|
|
|
|
|
|
|
|
|
|
inputs = WorkflowEntry.handle_special_values(event.inputs)
|
|
|
|
|
outputs = WorkflowEntry.handle_special_values(event.outputs)
|
|
|
|
|
|
|
|
|
|
workflow_node_execution.status = WorkflowNodeExecutionStatus.SUCCEEDED.value
|
|
|
|
|
workflow_node_execution.inputs = json.dumps(inputs) if inputs else None
|
|
|
|
|
workflow_node_execution.process_data = json.dumps(event.process_data) if event.process_data else None
|
|
|
|
|
workflow_node_execution.outputs = json.dumps(outputs) if outputs else None
|
|
|
|
|
workflow_node_execution.execution_metadata = (
|
|
|
|
|
execution_metadata = (
|
|
|
|
|
json.dumps(jsonable_encoder(event.execution_metadata)) if event.execution_metadata else None
|
|
|
|
|
)
|
|
|
|
|
workflow_node_execution.finished_at = datetime.now(timezone.utc).replace(tzinfo=None)
|
|
|
|
|
workflow_node_execution.elapsed_time = (workflow_node_execution.finished_at - event.start_at).total_seconds()
|
|
|
|
|
finished_at = datetime.now(timezone.utc).replace(tzinfo=None)
|
|
|
|
|
elapsed_time = (finished_at - event.start_at).total_seconds()
|
|
|
|
|
|
|
|
|
|
db.session.query(WorkflowNodeExecution).filter(WorkflowNodeExecution.id == workflow_node_execution.id).update(
|
|
|
|
|
{
|
|
|
|
|
WorkflowNodeExecution.status: WorkflowNodeExecutionStatus.SUCCEEDED.value,
|
|
|
|
|
WorkflowNodeExecution.inputs: json.dumps(inputs) if inputs else None,
|
|
|
|
|
WorkflowNodeExecution.process_data: json.dumps(event.process_data) if event.process_data else None,
|
|
|
|
|
WorkflowNodeExecution.outputs: json.dumps(outputs) if outputs else None,
|
|
|
|
|
WorkflowNodeExecution.execution_metadata: execution_metadata,
|
|
|
|
|
WorkflowNodeExecution.finished_at: finished_at,
|
|
|
|
|
WorkflowNodeExecution.elapsed_time: elapsed_time,
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
db.session.commit()
|
|
|
|
|
db.session.close()
|
|
|
|
|
|
|
|
|
|
workflow_node_execution.status = WorkflowNodeExecutionStatus.SUCCEEDED.value
|
|
|
|
|
workflow_node_execution.inputs = json.dumps(inputs) if inputs else None
|
|
|
|
|
workflow_node_execution.process_data = json.dumps(event.process_data) if event.process_data else None
|
|
|
|
|
workflow_node_execution.outputs = json.dumps(outputs) if outputs else None
|
|
|
|
|
workflow_node_execution.execution_metadata = execution_metadata
|
|
|
|
|
workflow_node_execution.finished_at = finished_at
|
|
|
|
|
workflow_node_execution.elapsed_time = elapsed_time
|
|
|
|
|
|
|
|
|
|
self._wip_workflow_node_executions.pop(workflow_node_execution.node_execution_id)
|
|
|
|
|
|
|
|
|
|
return workflow_node_execution
|
|
|
|
|
@ -294,17 +309,31 @@ class WorkflowCycleManage:
|
|
|
|
|
|
|
|
|
|
inputs = WorkflowEntry.handle_special_values(event.inputs)
|
|
|
|
|
outputs = WorkflowEntry.handle_special_values(event.outputs)
|
|
|
|
|
finished_at = datetime.now(timezone.utc).replace(tzinfo=None)
|
|
|
|
|
elapsed_time = (finished_at - event.start_at).total_seconds()
|
|
|
|
|
|
|
|
|
|
db.session.query(WorkflowNodeExecution).filter(WorkflowNodeExecution.id == workflow_node_execution.id).update(
|
|
|
|
|
{
|
|
|
|
|
WorkflowNodeExecution.status: WorkflowNodeExecutionStatus.FAILED.value,
|
|
|
|
|
WorkflowNodeExecution.error: event.error,
|
|
|
|
|
WorkflowNodeExecution.inputs: json.dumps(inputs) if inputs else None,
|
|
|
|
|
WorkflowNodeExecution.process_data: json.dumps(event.process_data) if event.process_data else None,
|
|
|
|
|
WorkflowNodeExecution.outputs: json.dumps(outputs) if outputs else None,
|
|
|
|
|
WorkflowNodeExecution.finished_at: finished_at,
|
|
|
|
|
WorkflowNodeExecution.elapsed_time: elapsed_time,
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
db.session.commit()
|
|
|
|
|
db.session.close()
|
|
|
|
|
|
|
|
|
|
workflow_node_execution.status = WorkflowNodeExecutionStatus.FAILED.value
|
|
|
|
|
workflow_node_execution.error = event.error
|
|
|
|
|
workflow_node_execution.finished_at = datetime.now(timezone.utc).replace(tzinfo=None)
|
|
|
|
|
workflow_node_execution.inputs = json.dumps(inputs) if inputs else None
|
|
|
|
|
workflow_node_execution.process_data = json.dumps(event.process_data) if event.process_data else None
|
|
|
|
|
workflow_node_execution.outputs = json.dumps(outputs) if outputs else None
|
|
|
|
|
workflow_node_execution.elapsed_time = (workflow_node_execution.finished_at - event.start_at).total_seconds()
|
|
|
|
|
|
|
|
|
|
db.session.commit()
|
|
|
|
|
db.session.close()
|
|
|
|
|
workflow_node_execution.finished_at = finished_at
|
|
|
|
|
workflow_node_execution.elapsed_time = elapsed_time
|
|
|
|
|
|
|
|
|
|
self._wip_workflow_node_executions.pop(workflow_node_execution.node_execution_id)
|
|
|
|
|
|
|
|
|
|
|