def test_gevent_num(self): """ensure gevent num is registered.""" q = Queue() w = GeventWorker(q) w.heartbeat() self.assertEqual(self.testconn.hget(w.key, 'curr_pool_len'), '0') job = q.enqueue(say_hello) w.execute_job(job, q) w.heartbeat() self.assertEqual(self.testconn.hget(w.key, 'curr_pool_len'), '1') w.register_death()
from config import REDIS_HOST, REDIS_PORT from rq_gevent_worker import GeventWorker from redis.client import StrictRedis from rq import Connection, Queue from logger import worker_logger if __name__ == '__main__': # Tell rq what Redis connection to use with Connection(connection=StrictRedis(host=REDIS_HOST, port=REDIS_PORT)): q = Queue(connection=StrictRedis(host=REDIS_HOST, port=REDIS_PORT)) waiting_jobs = q.get_jobs() for job in waiting_jobs: q.remove(job) gevent_worker = GeventWorker(q) gevent_worker.log = worker_logger gevent_worker.work()
def test_concurrent(self): w = GeventWorker(self.create_queue_with_two_jobs(), pool_size=2) with chronic.Timer('default'): w.work(burst=True) self.assertLess(chronic.timings['default']['total_elapsed'], 1.5)
def test_sequence(self): w = GeventWorker(self.create_queue_with_two_jobs(), pool_size=1) with chronic.Timer('default'): w.work(burst=True) self.assertGreater(chronic.timings['default']['total_elapsed'], 2.0)
def test_register_worker(self): """ensure pool size is registered.""" w = GeventWorker(Queue(), name="some_name", pool_size=10) w.register_birth() self.assertEqual(self.testconn.hget(w.key, 'pool_size'), '10')