title: TypeError Celery even on correct arguments
body: <p>I am using Celery and Redis together. I have following code in my tasks.py file:</p>
  
  <pre><code>from celery import Celery
  from faker import Factory
  fake = Factory.create()
  
  app = Celery("tasks")
  app.conf.broker_url = 'redis://localhost:6379/0'
  app.conf.result_backend = 'redis://localhost:6379/0'
  
  @app.task
  def twitterDP(hashtag):
      if hashtag:
          return ["From Twitter " + fake.text(20) + " hashtag # " + hashtag for x in range(5)]
      return []
  </code></pre>
  
  <p>and to run the tasks, I have yet another script that contains the following code:</p>
  
  <pre><code>import zmq
  from tasks import twitterDP
  from celery.result import AsyncResult
  
  import time
  
  class WorkFlow(object):
      def __init__(self):
          self.ctx = zmq.Context()
          self.socket_pull = self.ctx.socket(zmq.PULL)
          self.socket_pull.bind("tcp://127.0.0.1:5860")
  
      def do_work(self):
          while True:
              recv_msg = self.socket_pull.recv_json()
              print twitterDP.apply_async(("random"))
               time.sleep(1)
  
  if __name__ == "__main__":
      wf = WorkFlow()
      wf.do_work()
  </code></pre>
  
  <p>Event though the argument for the celery task is looking good, it gives me error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "/Users/sarvagya/Desktop/work/django_work/ed3/venv/lib/python2.7/site-packages/celery/app/task.py", line 517, in apply_async
      check_arguments(*(args or ()), **(kwargs or {}))
  TypeError: twitterDP() takes exactly 1 argument (6 given)
  </code></pre>
  
  <p>If I use two parameters for my <code>twitterDP</code> functions, it worked in the python console. But for a single parameter in task, it raised TypeError with the message <code>(x given)</code> where x is the length of the string I passed. In above example, its <code>random</code> which yields 6. Is this a bug in celery or is my code wrong somewhere?</p>