def __init__(self, queue_name='default', queue=None, interval=60, connection=None, job_class=None, queue_class=None, name=None): from rq.connections import resolve_connection self.connection = resolve_connection(connection) self._queue = queue if self._queue is None: self.queue_name = queue_name else: self.queue_name = self._queue.name self._interval = interval self.log = logger self._lock_acquired = False self.job_class = backend_class(self, 'job_class', override=job_class) self.queue_class_name = None if isinstance(queue_class, string_types): self.queue_class_name = queue_class self.queue_class = backend_class(self, 'queue_class', override=queue_class) self.name = name or uuid4().hex
def test_backend_class(self): """Ensure function backend_class works correctly""" self.assertEqual(fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue')) self.assertNotEqual(fixtures.say_pid, backend_class(fixtures, 'DummyQueue')) self.assertEqual(fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue', override=fixtures.DummyQueue)) self.assertEqual(fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue', override='tests.fixtures.DummyQueue'))
def test_backend_class(self): """Ensure function backend_class works correctly""" self.assertEqual(fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue')) self.assertNotEqual(fixtures.say_pid, backend_class(fixtures, 'DummyQueue')) self.assertEqual( fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue', override=fixtures.DummyQueue)) self.assertEqual( fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue', override='tests.fixtures.DummyQueue'))
def __init__(self, queue, connection=None, timeout=None, result_ttl=DEFAULT_RESULT_TTL, ttl=None, queue_class=None, depends_on=None, at_front=None, meta=None, description=None, failure_ttl=None, retry=None, on_success=None, on_failure=None): """A decorator that adds a ``delay`` method to the decorated function, which in turn creates a RQ job when called. Accepts a required ``queue`` argument that can be either a ``Queue`` instance or a string denoting the queue name. For example: @job(queue='default') def simple_add(x, y): return x + y simple_add.delay(1, 2) # Puts simple_add function into queue """ self.queue = queue self.queue_class = backend_class(self, 'queue_class', override=queue_class) self.connection = connection self.timeout = timeout self.result_ttl = result_ttl self.ttl = ttl self.meta = meta self.depends_on = depends_on self.at_front = at_front self.description = description self.failure_ttl = failure_ttl self.retry = retry # adds following additional parameters self.on_success = on_success self.on_failure = on_failure