Exemple #1
0
 def testMqProxy(self):
     self.mq = MessageQueue(self.dir_, None, self.addr, self.addrs,
                               copies=0, n_priorities=1)
     self.proxy = MpMessageQueueClient(self.mq.new_connection('0'))
     
     try:
         test_obj = Url(u'http://qinxuye.me/三星')
         self.proxy.put(test_obj, )
         self.assertEqual(self.proxy.get(), test_obj)
         test_obj = u'三星'
         self.proxy.put(test_obj, )
         self.assertEqual(self.proxy.get(), test_obj)
     finally:
         self.mq.shutdown()
Exemple #2
0
def run_containers(n_containers,
                   n_instances,
                   working_dir,
                   job_def_path,
                   job_name,
                   env,
                   mq,
                   counter_server,
                   budget_server,
                   speed_server,
                   stopped,
                   nonsuspend,
                   idle_statuses,
                   block=False,
                   is_multi_process=False,
                   is_local=False,
                   master_ip=None,
                   offset=0):
    processes = []
    acc = offset * n_instances
    for container_id in range(n_containers):
        n_tasks = n_instances / n_containers
        if container_id < n_instances % n_containers:
            n_tasks += 1

        if not is_multi_process:
            mq_client = mq
        else:
            conn = mq.new_connection(container_id)
            mq_client = MpMessageQueueClient(conn)

        container = Container(container_id,
                              working_dir,
                              job_def_path,
                              job_name,
                              env,
                              mq_client,
                              counter_server,
                              budget_server,
                              speed_server,
                              stopped,
                              nonsuspend,
                              idle_statuses,
                              n_tasks=n_tasks,
                              is_local=is_local,
                              master_ip=master_ip,
                              task_start_id=acc)
        if is_multi_process:
            process = multiprocessing.Process(target=container.run,
                                              args=(True, ))
            process.start()
            processes.append(process)
        else:
            thread = threading.Thread(target=container.run, args=(True, ))
            thread.start()
            processes.append(thread)
        acc += n_tasks

    if block:
        [process.join() for process in processes]
    return processes