예제 #1
0
def wait_is_done(connection, worker_scripts, script_id, process_id, process_name, worker_id, waiting_workers_ids):
    waiting_queue_name = get_waiting_queue_name(
        process_id, worker_id, waiting_workers_ids
    )
    worker = worker_scripts.get(script_id, {}).get(worker_id, {})
    for i, output_worker_id in enumerate(worker.get('next_workers', [])):
        output_worker_type = worker.get('__next_workers_types', [])[i]
        data = {'__read_from_queue': waiting_queue_name}
        poliglo.start_process(
            connection, script_id, output_worker_type,
            output_worker_id, process_name, data
        )
예제 #2
0
 def test_wait_for_all_jobs(self):
     self.process_id = start_process(
         self.connection,
         'test_wait_jobs', 'generate_numbers', 'generate_numbers_1', 'instance1', {}
     )
     queues = [None]
     while len(queues) > 0:
         sleep(1)
         queues = self.connection.keys("queue:*")
     total_finalized = self.connection.zcard(
         "scripts:test_wait_jobs:processes:%s:workers:count_numbers_1:finalized" % \
         self.process_id
     )
     self.assertEqual(1, total_finalized)
예제 #3
0
 def test_last_message_are_filtered(self):
     self.process_id = start_process(
         self.connection, 'test_wait_jobs',
         'generate_numbers', 'generate_numbers_1', 'instance1', {
             'numbers_range': [995, 1005]
         }
     )
     queues = [None]
     while len(queues) > 0:
         sleep(1)
         queues = self.connection.keys("queue:*")
     total_finalized = self.connection.zcard(
         "scripts:test_wait_jobs:processes:%s:workers:count_numbers_1:finalized" % \
         self.process_id
     )
     self.assertEqual(1, total_finalized)