fix: live status not sending, add progress
This commit is contained in:
parent
65492a108c
commit
d43e5fcefc
@ -361,13 +361,20 @@ async def send_json_override(self, event, data, sid=None):
|
|||||||
if event == 'executing' and data.get('node') is not None:
|
if event == 'executing' and data.get('node') is not None:
|
||||||
node = data.get('node')
|
node = data.get('node')
|
||||||
|
|
||||||
if 'prompt_id' in prompt_metadata:
|
if prompt_id in prompt_metadata:
|
||||||
|
if 'progress' not in prompt_metadata[prompt_id]:
|
||||||
|
prompt_metadata[prompt_id]["progress"] = set()
|
||||||
|
|
||||||
|
prompt_metadata[prompt_id]["progress"].add(node)
|
||||||
|
calculated_progress = len(prompt_metadata[prompt_id]["progress"]) / len(prompt_metadata[prompt_id]['workflow_api'])
|
||||||
|
# print("calculated_progress", calculated_progress)
|
||||||
|
|
||||||
if 'last_updated_node' in prompt_metadata[prompt_id] and prompt_metadata[prompt_id]['last_updated_node'] == node:
|
if 'last_updated_node' in prompt_metadata[prompt_id] and prompt_metadata[prompt_id]['last_updated_node'] == node:
|
||||||
return
|
return
|
||||||
prompt_metadata[prompt_id]['last_updated_node'] = node
|
prompt_metadata[prompt_id]['last_updated_node'] = node
|
||||||
class_type = prompt_metadata[prompt_id]['workflow_api'][node]['class_type']
|
class_type = prompt_metadata[prompt_id]['workflow_api'][node]['class_type']
|
||||||
print("updating run live status", class_type)
|
print("updating run live status", class_type)
|
||||||
await update_run_live_status(prompt_id, "Executing " + class_type)
|
await update_run_live_status(prompt_id, "Executing " + class_type, calculated_progress)
|
||||||
|
|
||||||
if event == 'execution_error':
|
if event == 'execution_error':
|
||||||
# Careful this might not be fully awaited.
|
# Careful this might not be fully awaited.
|
||||||
@ -391,18 +398,22 @@ class Status(Enum):
|
|||||||
# Global variable to keep track of the last read line number
|
# Global variable to keep track of the last read line number
|
||||||
last_read_line_number = 0
|
last_read_line_number = 0
|
||||||
|
|
||||||
async def update_run_live_status(prompt_id, live_status):
|
async def update_run_live_status(prompt_id, live_status, calculated_progress: float):
|
||||||
if prompt_id not in prompt_metadata:
|
if prompt_id not in prompt_metadata:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
print("progress", calculated_progress)
|
||||||
|
|
||||||
status_endpoint = prompt_metadata[prompt_id]['status_endpoint']
|
status_endpoint = prompt_metadata[prompt_id]['status_endpoint']
|
||||||
body = {
|
body = {
|
||||||
"run_id": prompt_id,
|
"run_id": prompt_id,
|
||||||
"live_status": live_status,
|
"live_status": live_status,
|
||||||
|
"progress": calculated_progress
|
||||||
}
|
}
|
||||||
# requests.post(status_endpoint, json=body)
|
# requests.post(status_endpoint, json=body)
|
||||||
async with aiohttp.ClientSession() as session:
|
async with aiohttp.ClientSession() as session:
|
||||||
await session.post(status_endpoint, json=body)
|
async with session.post(status_endpoint, json=body) as response:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def update_run(prompt_id, status: Status):
|
def update_run(prompt_id, status: Status):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user