def __init__(self, **kwargs):
self.__class__._instance = self
self._nodes = {}
self._disabled_nodes = {}
self._avail_nodes = set()
self._nodes_avail = pycos.Event()
self._nodes_avail.clear()
self._shared = False
self._cur_computation = None
self.__cur_client_auth = None
self.__cur_node_allocations = []
self.__pulse_interval = kwargs.pop('pulse_interval', MaxPulseInterval)
self.__ping_interval = kwargs.pop('ping_interval', 0)
self.__zombie_period = kwargs.pop('zombie_period', 100 * MaxPulseInterval)
self._node_port = kwargs.pop('dispycosnode_port', 51351)
self.__server_locations = set()
self.__job_scheduler_task = None
kwargs['name'] = 'dispycos_scheduler'
clean = kwargs.pop('clean', False)
nodes = kwargs.pop('nodes', [])
self.pycos = pycos.Pycos.instance(**kwargs)
self.__dest_path = os.path.join(self.pycos.dest_path, 'dispycos', 'dispycosscheduler')
if clean:
shutil.rmtree(self.__dest_path)
self.pycos.dest_path = self.__dest_path
self.__computation_sched_event = pycos.Event()
self.__computation_scheduler_task = SysTask(self.__computation_scheduler_proc, nodes)
self.__client_task = SysTask(self.__client_proc)
self.__timer_task = SysTask(self.__timer_proc)
Scheduler.__status_task = self.__status_task = SysTask(self.__status_proc)
self.__client_task.register('dispycos_scheduler')
self.pycos.discover_peers(port=self._node_port)
评论列表
文章目录