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()
예제 #2
0
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')