Skip to content
Snippets Groups Projects
Commit 6b91d1b3 authored by André Anjos's avatar André Anjos :speech_balloon:
Browse files

[backend] Also clean-up zombies after each iteration

parent 5a605082
No related branches found
No related tags found
1 merge request!194Scheduler
......@@ -36,6 +36,7 @@ import subprocess
import logging
logger = logging.getLogger(__name__)
import psutil
import simplejson
from django.conf import settings
......@@ -475,6 +476,14 @@ def work(environments, cpulimit, process, django_settings):
subprocess.Popen(cmdline + [execute, str(j.pk)])
def cleanup_zombies():
'''Cleans-up eventual zombie subprocesses launched by the call above'''
for child in psutil.Process().children():
if child.status == psutil.STATUS_ZOMBIE:
child.wait()
def resolve_process_path():
'''Returns the path to cpulimit'''
......
......@@ -46,7 +46,7 @@ from beat.core.async import resolve_cpulimit_path
from .models import Environment, Worker, Queue
from ..experiments.models import Experiment
from . import state
from .schedule import schedule, work, worker_update
from .schedule import schedule, work, worker_update, cleanup_zombies
from .schedule import find_environments, resolve_process_path
......@@ -59,13 +59,13 @@ class Work:
cpulimit = resolve_cpulimit_path(None)
process = resolve_process_path()
environments = find_environments(None)
django_settings = os.environ.get('DJANGO_SETTINGS_MODULE',
'beat.web.settings.zzz')
django_settings = os.environ.get('DJANGO_SETTINGS_MODULE')
def __call__(self):
# update workers that require updates
worker_update()
cleanup_zombies()
work(
Work.environments,
Work.cpulimit,
......@@ -102,7 +102,7 @@ def scheduler(request):
cache_gb = int(cache['capacity-in-megabytes'] / 1024.0)
# do scheduling and/or worker activity if required
if request.GET.has_key('activity'):
if settings.SCHEDULING_PANEL and request.GET.has_key('activity'):
activity = request.GET['activity']
if activity in ('both', 'schedule'):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment