示例#1
0
文件: base.py 项目: kmike/celery
    def apply(self):
        """Applies the taskset locally."""
        taskset_id = gen_unique_id()
        subtasks = [apply(self.task, args, kwargs)
                        for args, kwargs in self.arguments]

        # This will be filled with EagerResults.
        return TaskSetResult(taskset_id, subtasks)
示例#2
0
文件: base.py 项目: tarequeh/celery
    def apply(self, args=None, kwargs=None, **options):
        """Execute this task at once, by blocking until the task
        has finished executing.

        :param args: positional arguments passed on to the task.
        :param kwargs: keyword arguments passed on to the task.
        :rtype: :class:`celery.result.EagerResult`

        See :func:`celery.execute.apply`.

        """
        return apply(self, args, kwargs, **options)
示例#3
0
文件: base.py 项目: sensisoft/celery
    def run(self, connect_timeout=conf.AMQP_CONNECTION_TIMEOUT):
        """Run all tasks in the taskset.

        :returns: A :class:`celery.result.TaskSetResult` instance.

        Example

            >>> ts = TaskSet(RefreshFeedTask, args=[
            ...         (["http://foo.com/rss"], {}),
            ...         (["http://bar.com/rss"], {}),
            ... ])
            >>> result = ts.run()
            >>> result.taskset_id
            "d2c9b261-8eff-4bfb-8459-1e1b72063514"
            >>> result.subtask_ids
            ["b4996460-d959-49c8-aeb9-39c530dcde25",
            "598d2d18-ab86-45ca-8b4f-0779f5d6a3cb"]
            >>> result.waiting()
            True
            >>> time.sleep(10)
            >>> result.ready()
            True
            >>> result.successful()
            True
            >>> result.failed()
            False
            >>> result.join()
            [True, True]

        """
        taskset_id = gen_unique_id()

        from celery.conf import ALWAYS_EAGER

        if ALWAYS_EAGER:
            subtasks = [apply(self.task, args, kwargs) for args, kwargs in self.arguments]
            return TaskSetResult(taskset_id, subtasks)

        conn = self.task.establish_connection(connect_timeout=connect_timeout)
        publisher = self.task.get_publisher(connection=conn)
        try:
            subtasks = [
                apply_async(self.task, args, kwargs, taskset_id=taskset_id, publisher=publisher)
                for args, kwargs in self.arguments
            ]
        finally:
            publisher.close()
            conn.close()
        return TaskSetResult(taskset_id, subtasks)
示例#4
0
    def apply(self, args=None, kwargs=None, **options):
        """Execute this task locally, by blocking until the task
        has finished executing.

        :param args: positional arguments passed on to the task.
        :param kwargs: keyword arguments passed on to the task.
        :keyword throw: Re-raise task exceptions. Defaults to
            the ``CELERY_EAGER_PROPAGATES_EXCEPTIONS`` setting.

        :rtype :class:`celery.result.EagerResult`:

        See :func:`celery.execute.apply`.

        """
        return apply(self, args, kwargs, **options)
示例#5
0
    def apply(self, args=None, kwargs=None, **options):
        """Execute this task locally, by blocking until the task
        has finished executing.

        :param args: positional arguments passed on to the task.
        :param kwargs: keyword arguments passed on to the task.
        :keyword throw: Re-raise task exceptions. Defaults to
            the :setting:`CELERY_EAGER_PROPAGATES_EXCEPTIONS` setting.

        :rtype :class:`celery.result.EagerResult`:

        See :func:`celery.execute.apply`.

        """
        return apply(self, args, kwargs, **options)
示例#6
0
文件: base.py 项目: tarequeh/celery
 def apply(self):
     taskset_id = gen_unique_id()
     subtasks = [apply(self.task, args, kwargs)
                     for args, kwargs in self.arguments]
     return TaskSetResult(taskset_id, subtasks)