在对象

时间:2016-01-30 15:59:00

标签: python django celery celery-task

我正在开发一个Django应用程序,该应用程序聚合来自不同服务的事件并在这些事件发生时执行服务。我将此信息存储在Event类中。

class Event(models.Model):
    event_id = models.CharField(max_length=256, null=True, blank=True)
    start = models.DateTimeField(null=True, blank=True)

我有一个Celery任务,应该在特定事件实例的start日期时间运行。

@task
def do_something():
    print "Hey it's time for that event..."

我以为我可以使用Django保存后信号在指定的do_something日期时间(或者也可接受之前/之后5-60秒)安排start,但我还没有能够弄清楚如何做到这一点。

我已经查看了条目的选项,但这不是一个cron作业,这是一次性的。我正在努力找到最有效的方法来做到这一点。我现在有一个可行的解决方案 - 每隔60秒轮询一次Entries表,查找在接下来的60秒内开始的事件 - 但这看起来很糟糕。

0 个答案:

没有答案