Пример #1
0
def test_WorkerPool_heartrate(url):
    broker = get_broker(url)
    pool = WorkerPool(broker, WorkerPool_heartrate_init, workers=1)
    with start_pool(pool):

        q = get_queue(url)

        res = Task(q.suicide_worker, heartrate=0.1, result_timeout=5)()
        assert res.wait(WAIT), repr(res)
        print(repr(res))
        with assert_raises(TaskExpired):
            res.value
Пример #2
0
def test_WorkerPool_max_worker_tasks(url):
    broker = get_broker(url)
    pool = WorkerPool(broker, WorkerPool_max_worker_tasks_init,
        workers=1, max_worker_tasks=3)
    with start_pool(pool):

        q = get_queue(url)
        res = q.results([q.func() for n in range(4)])
        assert res.wait(WAIT), repr(res)

        results = res.value
        assert isinstance(results, list), results
        eq_([r[1] for r in results], [1, 2, 3, 1])
        eq_(len(set(r[0] for r in results)), 2)
Пример #3
0
def test_WorkerPool_crashed_worker(url):
    broker = get_broker(url)
    pool = WorkerPool(broker, WorkerPool_crashed_worker_init, workers=1)
    with start_pool(pool):

        q = get_queue(url)

        res = q.getpid()
        assert res.wait(WAIT), repr(res)
        pid = res.value

        q.kill_worker()

        res = q.getpid()
        assert res.wait(WAIT), repr(res)
        assert res.value != pid, pid
Пример #4
0
def test_WorkerPool_start_twice(url):
    broker = get_broker(url)
    pool = WorkerPool(broker, get_broker, workers=1)
    with start_pool(pool):
        with assert_raises(Error):
            pool.start(handle_sigterm=False)
Пример #5
0
def worker_pool(url, init_func, init_args, workers=1):
    process_config(init_args[-1], 'Pool-%s' % os.getpid())
    broker = get_broker(url)
    with discard_tasks(broker):
        pool = WorkerPool(broker, init_func, init_args, workers=workers)
        pool.start(timeout=1)
Пример #6
0
def test_WorkerPool_start_twice(url):
    broker = get_broker(url)
    pool = WorkerPool(broker, get_broker, workers=1)
    with start_pool(pool):
        with assert_raises(Error):
            pool.start(handle_sigterm=False)
Пример #7
0
def worker_pool(url, init_func, init_args, workers=1):
    process_config(init_args[-1], 'Pool-%s' % os.getpid())
    broker = get_broker(url)
    with discard_tasks(broker):
        pool = WorkerPool(broker, init_func, init_args, workers=workers)
        pool.start(timeout=1)