Esempio n. 1
0
    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
Esempio n. 2
0
File: jobs.py Progetto: wardi/ckan
    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)
Esempio n. 3
0
    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
Esempio n. 4
0
 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(()))
Esempio n. 5
0
 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(()))