소스 검색

Merge branch '3.0'

Conflicts:
	celery/app/task.py
	celery/bin/celery.py
	celery/canvas.py
	celery/contrib/rdb.py
Ask Solem 12 년 전
부모
커밋
11bc3e0fce
3개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. 5 3
      celery/app/task.py
  2. 1 1
      celery/canvas.py
  3. 2 0
      celery/contrib/rdb.py

+ 5 - 3
celery/app/task.py

@@ -13,6 +13,7 @@ import sys
 from celery import current_app
 from celery import states
 from celery._state import get_current_worker_task, _task_stack
+from celery.canvas import subtask
 from celery.datastructures import ExceptionInfo
 from celery.exceptions import MaxRetriesExceededError, RetryTaskError
 from celery.five import class_property, items, with_metaclass
@@ -649,12 +650,11 @@ class Task(object):
         return self._get_app().AsyncResult(task_id, backend=self.backend,
                                            task_name=self.name, **kwargs)
 
-    def subtask(self, *args, **kwargs):
+    def subtask(self, args=None, *starargs, **starkwargs):
         """Returns :class:`~celery.subtask` object for
         this task, wrapping arguments and execution options
         for a single task invocation."""
-        from celery.canvas import subtask
-        return subtask(self, *args, **kwargs)
+        return subtask(self, args, *starargs, **starkwargs)
 
     def s(self, *args, **kwargs):
         """``.s(*a, **k) -> .subtask(a, k)``"""
@@ -790,6 +790,8 @@ class Task(object):
 
     def __repr__(self):
         """`repr(task)`"""
+        if self.__self__:
+            return '<bound task {0.name} of {0.__self__}>'.format(self)
         return '<@task: {0.name}>'.format(self)
 
     def _get_request(self):

+ 1 - 1
celery/canvas.py

@@ -18,7 +18,7 @@ from itertools import chain as _chain
 
 from kombu.utils import cached_property, fxrange, kwdict, reprcall, uuid
 
-from celery import current_app
+from celery._state import current_app
 from celery.result import AsyncResult, GroupResult
 from celery.utils.functional import (
     maybe_list, is_list, regen,

+ 2 - 0
celery/contrib/rdb.py

@@ -91,6 +91,7 @@ class Rdb(Pdb):
         self._sock, this_port = self.get_avail_port(
             host, port, port_search_limit, port_skew,
         )
+        self._sock.setblocking(1)
         self._sock.listen(1)
         self.ident = '{0}:{1}'.format(self.me, this_port)
         self.host = host
@@ -98,6 +99,7 @@ class Rdb(Pdb):
         self.say(BANNER.format(self=self))
 
         self._client, address = self._sock.accept()
+        self._client.setblocking(1)
         self.remote_addr = ':'.join(str(v) for v in address)
         self.say(SESSION_STARTED.format(self=self))
         self._handle = sys.stdin = sys.stdout = self._client.makefile('rw')