间隔不是每5秒执行一次

时间:2019-03-28 15:17:42

标签: node.js azure-cosmosdb

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

0 个答案:

没有答案