def __init__(self, queues, name=None, default_result_ttl=None, connection=None, exception_handlers=None, default_worker_ttl=None, job_class=None): self.connection = connection # TODO: assert against empty queues. # TODO: test worker creation without global connection. queues = [ self.queue_class(name=q, connection=connection) if isinstance( q, text_type) else q for q in ensure_list(queues) ] self._name = name self.queues = queues self.validate_queues() self._exc_handlers = [] if default_result_ttl is None: default_result_ttl = DEFAULT_RESULT_TTL self.default_result_ttl = default_result_ttl if default_worker_ttl is None: default_worker_ttl = DEFAULT_WORKER_TTL self.default_worker_ttl = default_worker_ttl self._state = 'starting' self._stop_requested = False self.failed_queue = get_failed_queue(connection=self.connection) self.last_cleaned_at = None # By default, push the "move-to-failed-queue" exception handler onto # the stack if exception_handlers is None: self.push_exc_handler(self.move_to_failed_queue) elif isinstance(exception_handlers, list): for h in exception_handlers: self.push_exc_handler(h) elif exception_handlers is not None: self.push_exc_handler(exception_handlers) if job_class is not None: if isinstance(job_class, string_types): job_class = import_attribute(job_class) self.job_class = job_class
def __init__(self, queues=None, *args, **kwargs): u''' Constructor. Accepts the same arguments as the constructor of ``rq.worker.Worker``. However, the behavior of the ``queues`` parameter is different. :param queues: The job queue(s) to listen on. Can be a string with the name of a single queue or a list of queue names. If not given then the default queue is used. ''' queues = queues or [DEFAULT_QUEUE_NAME] queues = [get_queue(q) for q in ensure_list(queues)] rq.worker.logger.setLevel(logging.INFO) super(Worker, self).__init__(queues, *args, **kwargs)
def __init__(self, queues, name=None, default_result_ttl=None, connection=None, exception_handlers=None, default_worker_ttl=None, job_class=None): self.connection = connection # TODO: assert against empty queues. # TODO: test worker creation without global connection. queues = [self.queue_class(name=q, connection=connection) if isinstance(q, text_type) else q for q in ensure_list(queues)] self._name = name self.queues = queues self.validate_queues() self._exc_handlers = [] if default_result_ttl is None: default_result_ttl = DEFAULT_RESULT_TTL self.default_result_ttl = default_result_ttl if default_worker_ttl is None: default_worker_ttl = DEFAULT_WORKER_TTL self.default_worker_ttl = default_worker_ttl self._state = 'starting' self._stop_requested = False self.failed_queue = get_failed_queue(connection=self.connection) self.last_cleaned_at = None # By default, push the "move-to-failed-queue" exception handler onto # the stack if exception_handlers is None: self.push_exc_handler(self.move_to_failed_queue) elif isinstance(exception_handlers, list): for h in exception_handlers: self.push_exc_handler(h) elif exception_handlers is not None: self.push_exc_handler(exception_handlers) if job_class is not None: if isinstance(job_class, string_types): job_class = import_attribute(job_class) self.job_class = job_class
def test_ensure_list(self): """Ensure function ensure_list works correctly""" self.assertEqual([], ensure_list([])) self.assertEqual(['test'], ensure_list('test')) self.assertEqual({}, ensure_list({})) self.assertEqual((), ensure_list(()))