mirror of
https://github.com/ansible/awx.git
synced 2026-02-12 15:14:45 -03:30
Merge pull request #5586 from chrismeyersfsu/fix-job_start_websocket_race
emit job status over socket after database commit
This commit is contained in:
@@ -880,7 +880,7 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
workflow_node_id=self.workflow_node_id))
|
workflow_node_id=self.workflow_node_id))
|
||||||
return websocket_data
|
return websocket_data
|
||||||
|
|
||||||
def websocket_emit_status(self, status):
|
def _websocket_emit_status(self, status):
|
||||||
status_data = dict(unified_job_id=self.id, status=status)
|
status_data = dict(unified_job_id=self.id, status=status)
|
||||||
status_data.update(self.websocket_emit_data())
|
status_data.update(self.websocket_emit_data())
|
||||||
status_data['group_name'] = 'jobs'
|
status_data['group_name'] = 'jobs'
|
||||||
@@ -890,6 +890,9 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
status_data['group_name'] = "workflow_events"
|
status_data['group_name'] = "workflow_events"
|
||||||
emit_channel_notification('workflow_events-' + str(self.workflow_job_id), status_data)
|
emit_channel_notification('workflow_events-' + str(self.workflow_job_id), status_data)
|
||||||
|
|
||||||
|
def websocket_emit_status(self, status):
|
||||||
|
connection.on_commit(lambda: self._websocket_emit_status(status))
|
||||||
|
|
||||||
def notification_data(self):
|
def notification_data(self):
|
||||||
return dict(id=self.id,
|
return dict(id=self.id,
|
||||||
name=self.name,
|
name=self.name,
|
||||||
|
|||||||
@@ -382,7 +382,7 @@ class TaskManager():
|
|||||||
))
|
))
|
||||||
task_obj.save()
|
task_obj.save()
|
||||||
_send_notification_templates(task_obj, 'failed')
|
_send_notification_templates(task_obj, 'failed')
|
||||||
connection.on_commit(lambda: task_obj.websocket_emit_status('failed'))
|
task_obj.websocket_emit_status('failed')
|
||||||
|
|
||||||
logger.error("Task %s appears orphaned... marking as failed" % task)
|
logger.error("Task %s appears orphaned... marking as failed" % task)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user