【发布时间】:2015-11-23 23:13:11
【问题描述】:
假设我有一个数据库(Neo4j 特定于Node.js 后端),其中充满了具有开放和关闭时间的商店(数百万家)。而且我需要在适当的时间将每个数据库存储条目更新为打开或关闭。那么以稳定和可扩展的方式构建这样一个系统的最佳/通常做法是什么?
设置数百万个 cron 作业?
检查条目是否以固定的时间间隔更改?
第三方服务能否在特定时间调用我的后端进行更改?
【问题讨论】:
-
如果商店的开/关时间是提前知道的,为什么每次开或关时都要写入数据库?为什么不能从数据库中获取商店营业时间并进行计算以确定它当前是开放还是关闭?然后,您根本不需要更新数据库,除非计划的商店营业时间发生变化。
-
完全同意@jfriend00,只有当我被要求在检索时确定此信息时,我才会完全将标志
open=bool设置为true。这实际上取决于您的用例。能不能具体点,这个有什么用? -
@TomHert 我的例子似乎不是最好的,假设在某个时间点我们应该将这个
Store对象从Store转换为可供出租Property,那是什么我想安排。即我会将neo4j节点的标签从Store更改为Property。我为什么要这样做?将Property与Store搜索隔离开来。但现在我在想,也许我走错路了,最好在每次搜索中进行索引、过滤时间戳并将尚未过去的视为Stores,将其他视为空Property。 -
@jfriend00 看看我的评论。
-
虽然我不确定如果我将过滤索引节点属性而不是只查看
Store节点,我会失去一些性能。但我认为构建只会更改数百万条目的布尔值的调度系统不值得这种性能提升。
标签: node.js neo4j cron scheduling backend