mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-18 04:56:29 -06:00
Check for an existing job before queuing a new one
This commit is contained in:
parent
ec2dc8d7a4
commit
ab93606e4a
@ -2,6 +2,7 @@ import logging
|
|||||||
|
|
||||||
from cacheops import CacheMiss, cache
|
from cacheops import CacheMiss, cache
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django_rq import get_queue
|
||||||
|
|
||||||
from utilities.background_tasks import get_releases
|
from utilities.background_tasks import get_releases
|
||||||
|
|
||||||
@ -17,9 +18,14 @@ def get_latest_release(pre_releases=False):
|
|||||||
logger.debug("Found {} cached releases. Latest: {}".format(len(releases), max(releases)))
|
logger.debug("Found {} cached releases. Latest: {}".format(len(releases), max(releases)))
|
||||||
return max(releases)
|
return max(releases)
|
||||||
except CacheMiss:
|
except CacheMiss:
|
||||||
# Get the releases in the background worker, it will fill the cache
|
# Check for an existing job. This can happen if the RQ worker process is not running.
|
||||||
logger.debug("Initiating background task to retrieve updated releases list")
|
queue = get_queue('check_releases')
|
||||||
get_releases.delay(pre_releases=pre_releases)
|
if queue.jobs:
|
||||||
|
logger.debug("Job to check for new releases is already queued; skipping")
|
||||||
|
else:
|
||||||
|
# Get the releases in the background worker, it will fill the cache
|
||||||
|
logger.debug("Initiating background task to retrieve updated releases list")
|
||||||
|
get_releases.delay(pre_releases=pre_releases)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
logger.debug("Skipping release check; UPDATE_REPO_URL not defined")
|
logger.debug("Skipping release check; UPDATE_REPO_URL not defined")
|
||||||
|
Loading…
Reference in New Issue
Block a user