title: Celery @task doesn't work with instance methods
body: <p>I have a class with methods decorate with celery @task like this:</p>
  
  <pre><code>class Port(object): 
  
      """docstring for Port"""
  
  
      def __init__(self,):
          print 'Class has been initialized ...'
  
  
      @celery.task(filter=task_method,name="Port.process")    
      def process(self,):
          print "I'm inside the process task method: " 
  </code></pre>
  
  <p>Called here:</p>
  
  <pre><code>p = Port()
  
  p.process.apply_async()
  </code></pre>
  
  <p>I also tried: <code>p.process.delay()</code>, with the same below result.</p>
  
  <p>When I run it, I get this error:</p>
  
  <p><code>[2013-06-22 02:32:53,988: ERROR/MainProcess] Task Port.process[77cff07e-4bc5-4e36-9c4e-b68d7616c74e] raised exception: TypeError('process() takes at least 1 argument (0 given)',)
  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/site-packages/celery/task/trace.py", line 228, in trace_task
      R = retval = fun(*args, **kwargs)
    File "/usr/local/lib/python2.7/site-packages/celery/task/trace.py", line 415, in __protected_call__
      return self.run(*args, **kwargs)
  TypeError: process() takes at least 1 argument (0 given)</code></p>
  
  <p>This is the important part, <code>TypeError: process() takes at least 1 argument (0 given)</code>.</p>
  
  <p>Now how can I solve this??</p>
  
  <p>Some people say this happens because celery uses the method task unbound to the initialized object, and some others say it just works, do I miss something here?</p>