我正在开发一个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秒内开始的事件 - 但这看起来很糟糕。