在Twisted中使用callLater来跟踪拍卖结局

时间:2011-12-10 11:15:34

标签: python database twisted

我想知道在Twisted中使用callLater来跟踪拍卖结局是否是个好主意。这将是一个大约100,000秒的callLater,但这有关系吗?好像很方便。但是,如果服务器崩溃,那么这似乎是一个可怕的想法。

保持所有拍卖结束时的数据库似乎是最安全的解决方案,但每秒检查整个数据库以查看是否有任何拍卖结果似乎非常昂贵。

如果服务器崩溃,服务器可能会从拍卖结束时间的数据库条目中重新创建所有callLater。这种模式是否存在其他潜在问题?

1 个答案:

答案 0 :(得分:4)

其中一个Divmod项目Axiom可能适用于此处。 Axiom是一个对象数据库。其意想不到的有用功能之一是持久调度系统。

您可以使用数据库提供的API计划事件。当事件到期时,将调用您指定的回调。事件在重新启动过程中持续存在,因为它们表示为数据库对象。支持大量的预定事件,只需要在下一个事件发生时进行跟踪工作。

规范的Divmod网站不久前就崩溃了(遗憾的是公司不再是运营问题),但代码全部在http://launchpad.net/divmod.org处可用,文档正在http://divmod.readthedocs.org/缓慢重新托管。