Don't bomb out trying to parse the old json format for creating warnings about the task size.

This commit is contained in:
Dan 2022-04-20 12:35:34 -04:00
parent 1b28039cc9
commit 02703b89d8
1 changed files with 9 additions and 15 deletions

View File

@ -124,20 +124,14 @@ class WorkflowProcessor(object):
json_size = B/MB
if json_size > 1:
wf_json = json.loads(workflow_model.bpmn_workflow_json)
task_tree = wf_json['task_tree']
test_spec = wf_json['wf_spec']
if 'spec' in wf_json and 'tasks' in wf_json: #
task_tree = wf_json['tasks']
test_spec = wf_json['spec']
task_size = "{:.2f}".format(len(json.dumps(task_tree).encode('utf-8'))/MB)
spec_size = "{:.2f}".format(len(test_spec.encode('utf-8'))/MB)
task_specs = json.loads(test_spec)['task_specs']
sub_workflows = json.loads(test_spec)['sub_workflows']
spec_size = "{:.2f}".format(len(json.dumps(test_spec).encode('utf-8'))/MB)
message = 'Workflow ' + workflow_model.workflow_spec_id + ' JSON Size is over 1MB:{0:.2f} MB'.format(json_size)
message += f"\n Task Size: {task_size}"
message += f"\n Spec Size: {spec_size}"
message += f"\n Largest Sub-Process Sizes:"
for sw_name, sw_data in sub_workflows.items():
size = len(json.dumps(sw_data).encode('utf-8')) / MB
if size > 0.1:
message += "\n " + sw_name + " {:.2f}".format(size)
app.logger.warning(message)
self.workflow_spec_id = workflow_model.workflow_spec_id