title: Schedule Celery task for a time specified in object
body: <p>I'm working on a Django app that aggregates events from different services and performs services at the time of those events.  I store this information in an Event class.</p>
  
  <pre><code>class Event(models.Model):
      event_id = models.CharField(max_length=256, null=True, blank=True)
      start = models.DateTimeField(null=True, blank=True)
  </code></pre>
  
  <p>I have a Celery task that should be run at the <code>start</code> datetime of a particular Event instance.</p>
  
  <pre><code>@task
  def do_something():
      print "Hey it's time for that event..."
  </code></pre>
  
  <p>I thought I could use Django post-save signal to schedule <code>do_something</code> at the specified <code>start</code> datetime (or 5-60 seconds before/after is acceptable too) but I have not yet been able to figure out how to do this.</p>
  
  <p>I've reviewed the options for Entries but this is not a cron job, this is a one-time occurrence.  I'm trying to find the most efficient way to do this.  I have a working solution right now actually - poll the Entries table every 60 seconds looking for Events that start within the next 60 seconds - but this seems wonky.</p>