mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-01 10:48:12 +08:00
#56 fakes setting cpu_affinity on unsupported platforms
This commit is contained in:
+6
-1
@@ -431,7 +431,7 @@ def scheduler(broker=None):
|
||||
# get args, kwargs and hook
|
||||
if s.kwargs:
|
||||
try:
|
||||
# eval should be safe here cause dict()
|
||||
# eval should be safe here because dict()
|
||||
kwargs = eval('dict({})'.format(s.kwargs))
|
||||
except SyntaxError:
|
||||
kwargs = {}
|
||||
@@ -499,7 +499,12 @@ def set_cpu_affinity(n, process_ids, actual=not Conf.TESTING):
|
||||
"""
|
||||
# check if we have the psutil module
|
||||
if not psutil:
|
||||
logger.warning('Skipping cpu affinity because psutil was not found.')
|
||||
return
|
||||
# check if the platform supports cpu_affinity
|
||||
if actual and not hasattr(psutil.Process(process_ids[0]), 'cpu_affinity'):
|
||||
logger.warning('Faking cpu affinity because it is not supported on this platform')
|
||||
actual = False
|
||||
# get the available processors
|
||||
cpu_list = list(range(psutil.cpu_count()))
|
||||
# affinities of 0 or gte cpu_count, equals to no affinity
|
||||
|
||||
@@ -117,6 +117,5 @@ CACHES = {
|
||||
# Django Q specific
|
||||
Q_CLUSTER = {'name': 'django_q_test',
|
||||
'cpu_affinity': 1,
|
||||
'testing': True,
|
||||
'log_level': 'DEBUG',
|
||||
'django_redis': 'default'}
|
||||
|
||||
Reference in New Issue
Block a user