mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Allow redefining internally used queues
This commit is contained in:
committed by
Jeremy Stretch
parent
5a77791f9d
commit
080a001118
@ -141,6 +141,22 @@ When determining the primary IP address for a device, IPv6 is preferred over IPv
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## QUEUE_MAPPINGS
|
||||||
|
|
||||||
|
Allows changing which queues are used internally for background tasks.
|
||||||
|
|
||||||
|
```python
|
||||||
|
QUEUE_MAPPINGS = {
|
||||||
|
'webhook': 'low',
|
||||||
|
'report': 'high',
|
||||||
|
'script': 'high',
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
If no queue is defined the queue named `default` will be used.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## RELEASE_CHECK_URL
|
## RELEASE_CHECK_URL
|
||||||
|
|
||||||
Default: None (disabled)
|
Default: None (disabled)
|
||||||
|
@ -21,6 +21,7 @@ from extras.choices import *
|
|||||||
from extras.constants import *
|
from extras.constants import *
|
||||||
from extras.conditions import ConditionSet
|
from extras.conditions import ConditionSet
|
||||||
from extras.utils import FeatureQuery, image_upload
|
from extras.utils import FeatureQuery, image_upload
|
||||||
|
from netbox.config import get_config
|
||||||
from netbox.models import ChangeLoggedModel
|
from netbox.models import ChangeLoggedModel
|
||||||
from netbox.models.features import (
|
from netbox.models.features import (
|
||||||
CloningMixin, CustomFieldsMixin, CustomLinksMixin, ExportTemplatesMixin, JobResultsMixin, TagsMixin, WebhooksMixin,
|
CloningMixin, CustomFieldsMixin, CustomLinksMixin, ExportTemplatesMixin, JobResultsMixin, TagsMixin, WebhooksMixin,
|
||||||
@ -681,7 +682,8 @@ class JobResult(models.Model):
|
|||||||
job_id=uuid.uuid4()
|
job_id=uuid.uuid4()
|
||||||
)
|
)
|
||||||
|
|
||||||
queue = django_rq.get_queue("default")
|
rq_queue_name = get_config().QUEUE_MAPPINGS.get(obj_type.name, 'default')
|
||||||
|
queue = django_rq.get_queue(rq_queue_name)
|
||||||
|
|
||||||
if schedule_at:
|
if schedule_at:
|
||||||
job_result.status = JobResultStatusChoices.STATUS_SCHEDULED
|
job_result.status = JobResultStatusChoices.STATUS_SCHEDULED
|
||||||
|
@ -5,6 +5,7 @@ from django.contrib.contenttypes.models import ContentType
|
|||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django_rq import get_queue
|
from django_rq import get_queue
|
||||||
|
|
||||||
|
from netbox.config import get_config
|
||||||
from netbox.registry import registry
|
from netbox.registry import registry
|
||||||
from utilities.api import get_serializer_for_model
|
from utilities.api import get_serializer_for_model
|
||||||
from utilities.utils import serialize_object
|
from utilities.utils import serialize_object
|
||||||
@ -78,7 +79,8 @@ def flush_webhooks(queue):
|
|||||||
"""
|
"""
|
||||||
Flush a list of object representation to RQ for webhook processing.
|
Flush a list of object representation to RQ for webhook processing.
|
||||||
"""
|
"""
|
||||||
rq_queue = get_queue('default')
|
rq_queue_name = get_config().QUEUE_MAPPINGS.get('webhook', 'default')
|
||||||
|
rq_queue = get_queue(rq_queue_name)
|
||||||
webhooks_cache = {
|
webhooks_cache = {
|
||||||
'type_create': {},
|
'type_create': {},
|
||||||
'type_update': {},
|
'type_update': {},
|
||||||
|
@ -101,6 +101,7 @@ MEDIA_ROOT = getattr(configuration, 'MEDIA_ROOT', os.path.join(BASE_DIR, 'media'
|
|||||||
METRICS_ENABLED = getattr(configuration, 'METRICS_ENABLED', False)
|
METRICS_ENABLED = getattr(configuration, 'METRICS_ENABLED', False)
|
||||||
PLUGINS = getattr(configuration, 'PLUGINS', [])
|
PLUGINS = getattr(configuration, 'PLUGINS', [])
|
||||||
PLUGINS_CONFIG = getattr(configuration, 'PLUGINS_CONFIG', {})
|
PLUGINS_CONFIG = getattr(configuration, 'PLUGINS_CONFIG', {})
|
||||||
|
QUEUE_MAPPINGS = getattr(configuration, 'QUEUE_MAPPINGS', {})
|
||||||
RELEASE_CHECK_URL = getattr(configuration, 'RELEASE_CHECK_URL', None)
|
RELEASE_CHECK_URL = getattr(configuration, 'RELEASE_CHECK_URL', None)
|
||||||
REMOTE_AUTH_AUTO_CREATE_USER = getattr(configuration, 'REMOTE_AUTH_AUTO_CREATE_USER', False)
|
REMOTE_AUTH_AUTO_CREATE_USER = getattr(configuration, 'REMOTE_AUTH_AUTO_CREATE_USER', False)
|
||||||
REMOTE_AUTH_BACKEND = getattr(configuration, 'REMOTE_AUTH_BACKEND', 'netbox.authentication.RemoteUserBackend')
|
REMOTE_AUTH_BACKEND = getattr(configuration, 'REMOTE_AUTH_BACKEND', 'netbox.authentication.RemoteUserBackend')
|
||||||
|
Reference in New Issue
Block a user