setInterval(async () => {
var time = Math.floor(Date.now() / 1000);
const { result: newevents } = await client.database("database").container("collection").items.query(`SELECT * FROM Events c WHERE c._ts >= ${time - 5} AND c._ts < ${time}`, { enableCrossPartitionQuery: true }).toArray();
newevents.forEach((element) => {
redisClientEventData.set(element.id, JSON.stringify(element));
});
}, 5000);
我每5秒钟运行一次此代码,以在5秒钟的窗口中从cosmosdb获取事件,而数据库查询通常只需要40-60ms。但是,随着时间的流逝,它将跳过一秒钟而错过事件。无论如何,有没有保证我每5秒就能得到一次活动?我尝试了一会儿循环,但似乎没有用。通常可以使用6到12个小时,然后跳过一秒钟。
我希望看到类似的东西
1553786056
1553786061
1553786066
1553786071
但是加班,我终于看到了
1553786056
1553786061
1553786067
1553786072