diff --git a/src/sentry/tasks/post_process.py b/src/sentry/tasks/post_process.py index f905f3730275ee..4cdd8a6e4342a3 100644 --- a/src/sentry/tasks/post_process.py +++ b/src/sentry/tasks/post_process.py @@ -40,7 +40,6 @@ from sentry.utils.sdk import bind_organization_context, set_current_event_project from sentry.utils.sdk_crashes.sdk_crash_detection_config import build_sdk_crash_detection_configs from sentry.utils.services import build_instance_from_options_of_type -from sentry.workflow_engine.types import WorkflowEventData if TYPE_CHECKING: from sentry.eventstore.models import Event, GroupEvent @@ -955,45 +954,26 @@ def process_workflow_engine(job: PostProcessJob) -> None: """ metrics.incr("workflow_engine.issue_platform.payload.received.occurrence") - from sentry.workflow_engine.processors.workflow import process_workflows from sentry.workflow_engine.tasks.workflows import process_workflows_event - # PostProcessJob event is optional, WorkflowEventData event is required if "event" not in job: - logger.error("Missing event to create WorkflowEventData", extra={"job": job}) + logger.error("Missing event to schedule workflow task", extra={"job": job}) return try: - workflow_event_data = WorkflowEventData( - event=job["event"], - group=job["event"].group, - group_state=job.get("group_state"), - has_reappeared=job.get("has_reappeared"), - has_escalated=job.get("has_escalated"), + process_workflows_event.delay( + project_id=job["event"].project_id, + event_id=job["event"].event_id, + occurrence_id=job["event"].occurrence_id, + group_id=job["event"].group_id, + group_state=job["group_state"], + has_reappeared=job["has_reappeared"], + has_escalated=job["has_escalated"], ) except Exception: - logger.exception("Could not create WorkflowEventData", extra={"job": job}) + logger.exception("Could not process workflow task", extra={"job": job}) return - org = job["event"].project.organization - if not features.has("organizations:workflow-engine-post-process-async", org): - with sentry_sdk.start_span(op="tasks.post_process_group.workflow_engine.process_workflow"): - process_workflows(workflow_event_data) - else: - try: - process_workflows_event.delay( - project_id=job["event"].project_id, - event_id=job["event"].event_id, - occurrence_id=job["event"].occurrence_id, - group_id=job["event"].group_id, - group_state=job["group_state"], - has_reappeared=job["has_reappeared"], - has_escalated=job["has_escalated"], - ) - except Exception: - logger.exception("Could not process workflow task", extra={"job": job}) - return - def process_workflow_engine_issue_alerts(job: PostProcessJob) -> None: """ diff --git a/tests/sentry/incidents/test_metric_issue_post_process.py b/tests/sentry/incidents/test_metric_issue_post_process.py index 1f7d0a1b5de013..4c19f73f0c8c4f 100644 --- a/tests/sentry/incidents/test_metric_issue_post_process.py +++ b/tests/sentry/incidents/test_metric_issue_post_process.py @@ -70,7 +70,7 @@ def setUp(self): @with_feature("organizations:issue-metric-issue-post-process-group") @with_feature("organizations:workflow-engine-metric-alert-processing") @with_feature("organizations:workflow-engine-process-metric-issue-workflows") - @patch("sentry.workflow_engine.processors.workflow.process_workflows") + @patch("sentry.workflow_engine.tasks.workflows.process_workflows_event.delay") def test_occurrence_post_process(self, mock_process_workflows): value = self.critical_detector_trigger.comparison + 1 packet = QuerySubscriptionUpdate( diff --git a/tests/sentry/workflow_engine/test_integration.py b/tests/sentry/workflow_engine/test_integration.py index b8e1b781b3625c..008dd585598e20 100644 --- a/tests/sentry/workflow_engine/test_integration.py +++ b/tests/sentry/workflow_engine/test_integration.py @@ -152,7 +152,7 @@ def test_workflow_engine__workflows(self): self.create_event(self.project.id, datetime.utcnow(), str(self.detector.id)) with mock.patch( - "sentry.workflow_engine.processors.workflow.process_workflows" + "sentry.workflow_engine.tasks.workflows.process_workflows_event.delay" ) as mock_process_workflow: self.call_post_process_group(self.group.id) mock_process_workflow.assert_called_once() @@ -176,7 +176,7 @@ def test_workflow_engine__workflows__other_events(self): self.group = Group.objects.get(grouphash__hash=self.occurrence.fingerprint[0]) with mock.patch( - "sentry.workflow_engine.processors.workflow.process_workflows" + "sentry.workflow_engine.tasks.workflows.process_workflows_event.delay" ) as mock_process_workflow: self.call_post_process_group(error_event.group_id) @@ -189,7 +189,7 @@ def test_workflow_engine__workflows__no_flag(self): assert self.group with mock.patch( - "sentry.workflow_engine.processors.workflow.process_workflows" + "sentry.workflow_engine.tasks.workflows.process_workflows_event.delay" ) as mock_process_workflow: self.call_post_process_group(self.group.id)