From cf4154af7bd04b5ea1bb6b5438c5cf42f6571657 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Tue, 23 Jun 2026 18:34:19 +0800 Subject: [PATCH] perf: push account --- apps/accounts/automations/base/manager.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/apps/accounts/automations/base/manager.py b/apps/accounts/automations/base/manager.py index 382ec0e17..0fac90dcd 100644 --- a/apps/accounts/automations/base/manager.py +++ b/apps/accounts/automations/base/manager.py @@ -186,7 +186,10 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager): print("Account not found, deleted ?") return - account.secret = getattr(record, 'new_secret', account.secret) + update_fields = ['date_updated', 'date_change_secret', 'change_secret_status'] + if hasattr(record, 'new_secret'): + account.secret = record.new_secret + update_fields.insert(0, 'secret') account.date_updated = timezone.now() account.date_change_secret = timezone.now() account.change_secret_status = ChangeSecretRecordStatusChoice.success @@ -201,9 +204,16 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager): super().on_host_success(host, result) with safe_atomic_db_connection(): - account.save(update_fields=['secret', 'date_updated', 'date_change_secret', 'change_secret_status']) - self.save_record(record) - self.clear_account_queue_status(account.id) + try: + account.save(update_fields=update_fields) + self.save_record(record) + except Exception: + logger.exception( + 'Save account success result failed: account=%s, record=%s, host=%s', + account.id, getattr(record, 'id', None), host + ) + finally: + self.clear_account_queue_status(account.id) def on_host_error(self, host, error, result): record = self.name_record_mapper.get(host)