Select Git revision
ConfirmDeleteModal.vue
-
Sonia Zorba authoredSonia Zorba authored
task_executor.py 1.37 KiB
#!/usr/bin/env python
#
# This file is part of vospace-transfer-service
# Copyright (C) 2021 Istituto Nazionale di Astrofisica
# SPDX-License-Identifier: GPL-3.0-or-later
#
import time
from multiprocessing import Process
from config import Config
from job_queue import JobQueue
class TaskExecutor(Process):
def __init__(self):
config = Config("/etc/vos_ts/vos_ts.conf")
params = config.loadSection("scheduling")
self.maxPendingJobs = params.getint("max_pending_jobs")
self.maxReadyJobs = params.getint("max_ready_jobs")
self.maxTerminatedJobs = params.getint("max_terminated_jobs")
self.maxCleanJobs = params.getint("max_clean_jobs")
self.execWaitTime = params.getint("exec_wait_time")
if self.execWaitTime < 10:
self.execWaitTime = 10
self.srcQueue = None
self.destQueue = None
super(TaskExecutor, self).__init__()
def wait(self, timeout = None):
if timeout is None:
time.sleep(self.execWaitTime)
else:
time.sleep(timeout)
def setSourceQueueName(self, srcQueueName):
self.srcQueue = JobQueue(srcQueueName)
def setDestinationQueueName(self, destQueueName):
self.destQueue = JobQueue(destQueueName)
def run(self):
"""
This method must be implemented by
inherited classes
"""
pass