title: Celery: Rate limit on tasks with the same parameters
body: <p>I am looking for a way to restrict when a function is called, but only when the input parameters are different, that is:</p>
  
  <pre><code>@app.task(rate_limit="60/s")
  def api_call(user):
     do_the_api_call()
  
  for i in range(0,100):
    api_call("antoine")
    api_call("oscar")
  </code></pre>
  
  <p>So I would like <code>api_call("antoine")</code> to be called <strong>60 times per second</strong> and <code>api_call("oscar")</code> <strong>60 times per second</strong> as well.</p>
  
  <p>Any help on how can I do that?</p>
  
  <p>--EDIT 27/04/2015
  I have tried calling a subtask with rate_limit within a task, but it does not work either: The rate_limit is always applied for all the instantiated subtasks or tasks (which is logical).</p>
  
  <pre><code>@app.task(rate_limit="60/s")
  def sub_api_call(user):
     do_the_api_call()
  
  @app.task
  def api_call(user):
    sub_api_call(user)
  
  for i in range(0,100):
    api_call("antoine")
    api_call("oscar")
  </code></pre>
  
  <p>Best!</p>