1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Introduce a new 'check_releases' RQ queue

This commit is contained in:
Jeremy Stretch
2020-03-17 11:22:56 -04:00
parent 3590ed378d
commit a2eb2e7da6
3 changed files with 27 additions and 6 deletions

View File

@ -0,0 +1,16 @@
from django.conf import settings
from django_rq.management.commands.rqworker import Command as _Command
class Command(_Command):
"""
Subclass django_rq's built-in rqworker to listen on all configured queues if none are specified (instead
of only the 'default' queue).
"""
def handle(self, *args, **options):
# If no queues have been specified on the command line, listen on all configured queues.
if len(args) < 1:
args = settings.RQ_QUEUES
super().handle(*args, **options)

View File

@ -266,7 +266,6 @@ INSTALLED_APPS = [
'corsheaders', 'corsheaders',
'debug_toolbar', 'debug_toolbar',
'django_filters', 'django_filters',
'django_rq',
'django_tables2', 'django_tables2',
'django_prometheus', 'django_prometheus',
'mptt', 'mptt',
@ -283,6 +282,7 @@ INSTALLED_APPS = [
'users', 'users',
'utilities', 'utilities',
'virtualization', 'virtualization',
'django_rq', # Must come after extras to allow overriding management commands
'drf_yasg', 'drf_yasg',
] ]
@ -576,15 +576,17 @@ SWAGGER_SETTINGS = {
# Django RQ (Webhooks backend) # Django RQ (Webhooks backend)
# #
RQ_QUEUES = { if not TASKS_REDIS_USING_SENTINEL:
'default': { RQ_PARAMS = {
'HOST': TASKS_REDIS_HOST, 'HOST': TASKS_REDIS_HOST,
'PORT': TASKS_REDIS_PORT, 'PORT': TASKS_REDIS_PORT,
'DB': TASKS_REDIS_DATABASE, 'DB': TASKS_REDIS_DATABASE,
'PASSWORD': TASKS_REDIS_PASSWORD, 'PASSWORD': TASKS_REDIS_PASSWORD,
'DEFAULT_TIMEOUT': TASKS_REDIS_DEFAULT_TIMEOUT, 'DEFAULT_TIMEOUT': TASKS_REDIS_DEFAULT_TIMEOUT,
'SSL': TASKS_REDIS_SSL, 'SSL': TASKS_REDIS_SSL,
} if not TASKS_REDIS_USING_SENTINEL else { }
else:
RQ_PARAMS = {
'SENTINELS': TASKS_REDIS_SENTINELS, 'SENTINELS': TASKS_REDIS_SENTINELS,
'MASTER_NAME': TASKS_REDIS_SENTINEL_SERVICE, 'MASTER_NAME': TASKS_REDIS_SENTINEL_SERVICE,
'DB': TASKS_REDIS_DATABASE, 'DB': TASKS_REDIS_DATABASE,
@ -594,8 +596,11 @@ RQ_QUEUES = {
'socket_connect_timeout': TASKS_REDIS_DEFAULT_TIMEOUT 'socket_connect_timeout': TASKS_REDIS_DEFAULT_TIMEOUT
}, },
} }
}
RQ_QUEUES = {
'default': RQ_PARAMS, # Webhooks
'check_releases': RQ_PARAMS,
}
# #
# Django debug toolbar # Django debug toolbar

View File

@ -10,7 +10,7 @@ from packaging import version
logger = logging.getLogger('netbox.releases') logger = logging.getLogger('netbox.releases')
@job @job('check_releases')
def get_releases(pre_releases=False): def get_releases(pre_releases=False):
url = settings.UPDATE_REPO_URL url = settings.UPDATE_REPO_URL
headers = { headers = {