mirror of
https://github.com/ansible/awx.git
synced 2026-03-20 10:27:34 -02:30
add a few additional optimizations to the callback receiver
This commit is contained in:
@@ -17,6 +17,8 @@ from django.utils.functional import cached_property
|
|||||||
# Django REST Framework
|
# Django REST Framework
|
||||||
from rest_framework.fields import empty, SkipField
|
from rest_framework.fields import empty, SkipField
|
||||||
|
|
||||||
|
import cachetools
|
||||||
|
|
||||||
# Tower
|
# Tower
|
||||||
from awx.main.utils import encrypt_field, decrypt_field
|
from awx.main.utils import encrypt_field, decrypt_field
|
||||||
from awx.conf import settings_registry
|
from awx.conf import settings_registry
|
||||||
@@ -28,6 +30,8 @@ from awx.conf.migrations._reencrypt import decrypt_field as old_decrypt_field
|
|||||||
|
|
||||||
logger = logging.getLogger('awx.conf.settings')
|
logger = logging.getLogger('awx.conf.settings')
|
||||||
|
|
||||||
|
SETTING_MEMORY_TTL = 5 if 'callback_receiver' in ' '.join(sys.argv) else 0
|
||||||
|
|
||||||
# Store a special value to indicate when a setting is not set in the database.
|
# Store a special value to indicate when a setting is not set in the database.
|
||||||
SETTING_CACHE_NOTSET = '___notset___'
|
SETTING_CACHE_NOTSET = '___notset___'
|
||||||
|
|
||||||
@@ -406,6 +410,7 @@ class SettingsWrapper(UserSettingsHolder):
|
|||||||
def SETTINGS_MODULE(self):
|
def SETTINGS_MODULE(self):
|
||||||
return self._get_default('SETTINGS_MODULE')
|
return self._get_default('SETTINGS_MODULE')
|
||||||
|
|
||||||
|
@cachetools.cached(cache=cachetools.TTLCache(maxsize=2048, ttl=SETTING_MEMORY_TTL))
|
||||||
def __getattr__(self, name):
|
def __getattr__(self, name):
|
||||||
value = empty
|
value = empty
|
||||||
if name in self.all_supported_settings:
|
if name in self.all_supported_settings:
|
||||||
|
|||||||
@@ -380,10 +380,11 @@ class BasePlaybookEvent(CreatedModifiedModel):
|
|||||||
value = force_text(event_data.get(field, '')).strip()
|
value = force_text(event_data.get(field, '')).strip()
|
||||||
if value != getattr(self, field):
|
if value != getattr(self, field):
|
||||||
setattr(self, field, value)
|
setattr(self, field, value)
|
||||||
analytics_logger.info(
|
if settings.LOG_AGGREGATOR_ENABLED:
|
||||||
'Event data saved.',
|
analytics_logger.info(
|
||||||
extra=dict(python_objects=dict(job_event=self))
|
'Event data saved.',
|
||||||
)
|
extra=dict(python_objects=dict(job_event=self))
|
||||||
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create_from_data(cls, **kwargs):
|
def create_from_data(cls, **kwargs):
|
||||||
|
|||||||
Reference in New Issue
Block a user