Пример #1
0
    def delay(cls, *args, **kwargs):
        """Shortcut to :meth:`apply_async` but with star arguments,
        and doesn't support the extra options.

        :param \*args: positional arguments passed on to the task.

        :param \*\*kwargs: keyword arguments passed on to the task.

        :rtype: :class:`celery.result.AsyncResult`

        """
        return apply_async(cls, args, kwargs)
Пример #2
0
    def apply_async(cls, args=None, kwargs=None, **options):
        """Delay this task for execution by the ``celery`` daemon(s).

        :param args: positional arguments passed on to the task.

        :param kwargs: keyword arguments passed on to the task.

        :rtype: :class:`celery.result.AsyncResult`

        See :func:`celery.execute.apply_async`.

        """
        return apply_async(cls, args, kwargs, **options)
Пример #3
0
    def delay(cls, *args, **kwargs):
        """Delay this task for execution by the ``celery`` daemon(s).

        :param \*args: positional arguments passed on to the task.

        :param \*\*kwargs: keyword arguments passed on to the task.

        :rtype: :class:`celery.result.AsyncResult`

        See :func:`celery.execute.delay_task`.

        """
        return apply_async(cls, args, kwargs)
Пример #4
0
    def apply_async(self, args=None, kwargs=None, **options):
        """Delay this task for execution by the ``celery`` daemon(s).

        :param args: positional arguments passed on to the task.
        :param kwargs: keyword arguments passed on to the task.
        :keyword \*\*options: Any keyword arguments to pass on to
            :func:`celery.execute.apply_async`.

        See :func:`celery.execute.apply_async` for more information.

        :returns :class:`celery.result.AsyncResult`:

        """
        return apply_async(self, args, kwargs, **options)
Пример #5
0
    def apply_async(self, args=None, kwargs=None, **options):
        """Delay this task for execution by the ``celery`` daemon(s).

        :param args: positional arguments passed on to the task.
        :param kwargs: keyword arguments passed on to the task.
        :keyword \*\*options: Any keyword arguments to pass on to
            :func:`celery.execute.apply_async`.

        See :func:`celery.execute.apply_async` for more information.

        :returns :class:`celery.result.AsyncResult`:

        """
        return apply_async(self, args, kwargs, **options)
Пример #6
0
    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)
Пример #7
0
 def apply_part(self, arglist, taskset_id, publisher):
     args, kwargs, opts = mexpand(arglist, 3, default={})
     return apply_async(self.task, args, kwargs,
                        taskset_id=taskset_id, publisher=publisher, **opts)
Пример #8
0
 def apply_part(self, arglist, taskset_id, publisher):
     """Apply a single part of the taskset."""
     args, kwargs, opts = padlist(arglist, 3, default={})
     return apply_async(self.task, args, kwargs,
                        taskset_id=taskset_id, publisher=publisher, **opts)