2016-07-26 29 views
0

在我的节点应用程序中使用mongodb我有用户可以在租借上书籍的功能,其他用户可以通过“whenDate”请求它们。一篇文章只映射到一本书。在NodeJs及其生命周期中的特定时间执行功能

考虑用户从现在开始的5天内的书籍请求。在这种情况下,我想锁定这本书一周,以便其他人无法在此期间提出请求。

1)我怎么能在NodeJs中实现一个函数在某个时候执行后考虑到我将会有很多这样的东西?在上述情况下,该功能将在5天后执行,以锁定特定的图书文档。请考虑问题2。

2)我不希望这些定时器被删除,如果我重新启动我的应用程序。我怎样才能做到这一点?

在此先感谢。

回答

0

您可以使用mongo DB中的TTL功能在生存时间后自动丢弃记录。

假设您根据预订时间预订请求并设置TTL表格。在达到TTL后,Mongo DB可以删除这些预订记录。所以你的node.js应用程序不需要触发任何工作。

参见:https://docs.mongodb.com/manual/tutorial/expire-data/

+0

我知道在MongoDB中TTL。但是,正如你所看到的,我的要求并不是删除文档,而是更新文档,我也希望在该特定时间发送推送通知。 –

+0

好的。在这种情况下,我建议您为租借请求创建一个单独的集合,以便您实际上不会删除实际的帐簿记录。这会起作用吗? –

+0

这不会解决我的目的。我想要的是非常特定于节点js的东西。对于每个预订,我都希望在预订期间开始时自动触发功能。 –

相关问题