async def handle_client_get_queue(self, client_addr, _: ClientGetQueue): """ Handles a ClientGetQueue message. Send back info about the job queue""" #jobs_running: a list of tuples in the form #(job_id, is_current_client_job, agent_name, info, launcher, started_at, max_time) jobs_running = list() for job_id, content in self._job_running.items(): agent_friendly_name = self._registered_agents[ content.agent_addr].name jobs_running.append( (content.msg.job_id, content.client_addr == client_addr, agent_friendly_name, content.msg.course_id + "/" + content.msg.task_id, content.msg.launcher, int(content.time_started), self._get_time_limit_estimate(content.msg))) #jobs_waiting: a list of tuples in the form #(job_id, is_current_client_job, info, launcher, max_time) jobs_waiting = list() for job in self._waiting_jobs.values(): if isinstance(job.msg, ClientNewJob): jobs_waiting.append( (job.job_id, job.client_addr == client_addr, job.msg.course_id + "/" + job.msg.task_id, job.msg.launcher, self._get_time_limit_estimate(job.msg))) await ZMQUtils.send_with_addr( self._client_socket, client_addr, BackendGetQueue(jobs_running, jobs_waiting))
async def handle_client_get_queue(self, client_addr, _: ClientGetQueue): """ Handles a ClientGetQueue message. Send back info about the job queue""" #jobs_running: a list of tuples in the form #(job_id, is_current_client_job, agent_name, info, launcher, started_at, max_end) jobs_running = list() for backend_job_id, content in self._job_running.items(): jobs_running.append( (content[1].job_id, backend_job_id[0] == client_addr, self._registered_agents[content[0]], content[1].course_id + "/" + content[1].task_id, content[1].launcher, int(content[2]), int(content[2]) + content[1].time_limit)) #jobs_waiting: a list of tuples in the form #(job_id, is_current_client_job, info, launcher, max_time) jobs_waiting = list() for job_client_addr, job in self._waiting_jobs.items(): msg = job[-1] if isinstance(msg, ClientNewJob): jobs_waiting.append( (msg.job_id, job_client_addr[0] == client_addr, msg.course_id + "/" + msg.task_id, msg.launcher, msg.time_limit)) await ZMQUtils.send_with_addr( self._client_socket, client_addr, BackendGetQueue(jobs_running, jobs_waiting))