# What this PR does Add transactions around log record creation and check transaction on_commit before sending signals passing DB id of alert group log records. In cases for delete we can then assume any missing IDs on tasks are from intentionally deleted alert groups and we can stop tasks from retrying endlessly. ## Which issue(s) this PR fixes ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not required)
19 lines
669 B
Python
19 lines
669 B
Python
import time
|
|
|
|
from django.conf import settings
|
|
|
|
from apps.alerts.signals import alert_group_action_triggered_signal
|
|
from common.custom_celery_tasks import shared_dedicated_queue_retry_task
|
|
|
|
from .task_logger import task_logger
|
|
|
|
|
|
@shared_dedicated_queue_retry_task(
|
|
autoretry_for=(Exception,), retry_backoff=True, max_retries=0 if settings.DEBUG else None
|
|
)
|
|
def send_alert_group_signal(log_record_id):
|
|
start_time = time.time()
|
|
task_logger.info(f"sending signal for log record {log_record_id}")
|
|
alert_group_action_triggered_signal.send(sender=send_alert_group_signal, log_record=log_record_id)
|
|
|
|
print("--- %s seconds ---" % (time.time() - start_time))
|