Azure Function Nodejs 中是不是可以休眠?
Posted
技术标签:
【中文标题】Azure Function Nodejs 中是不是可以休眠?【英文标题】:is posible sleep in Azure Function Nodejs?Azure Function Nodejs 中是否可以休眠? 【发布时间】:2022-01-04 00:07:56 【问题描述】:我计算了每秒 50 次更新操作所需的请求单位 (RU): https://cosmos.azure.com/capacitycalculator/
但是这 50 次更新操作需要 1 秒才能完成
因此,
使用批量操作(更新操作组)插入 mongodb 数据库时,我需要休眠 1 秒
这在带有 nodejs 的 azure 函数中是否可行?
我试过这个代码
sleep(milliseconds)
return new Promise(resolve => setTimeout(resolve, milliseconds))
但不起作用。
有类似情况吗?
【问题讨论】:
您要解决的实际问题是什么。到目前为止,这是一个XY problem,您在其中询问一些理论上的解决方案,而不是描述实际问题。如果您描述实际问题(和相关代码),我们可以以更有价值的方式提供帮助。可能这里正确的答案是正确编写异步数据库插入代码,而不是尝试在某处插入一些随机延迟。 【参考方案1】:通常我们使用延迟异步函数来等待一个块在 1000 毫秒后重新运行。
以下是我们定期制作的示例之一,以增加我们的逻辑延迟。由于您尚未提供完整的代码,请确保您遵循以下结构。
function RunAfterOneSec()
return new Promise(resolve =>
setTimeout(() =>
resolve('resolved');
, 1000);
);
async function asyncCall()
console.log('calling');
const result = await RunAfterOneSec();
console.log(result);
// expected output: "resolved"
asyncCall();
或者你可以在 node sleep package 的帮助下使用,我们可以如下使用它:
var sleep = require('sleep');
sleep.sleep(n)
sleep.sleep(n)
:休眠n
秒
sleep.msleep(n)
: 睡眠 n
毫秒
sleep.usleep(n)
:休眠n
微秒(1 秒等于 1000000 微秒)
【讨论】:
以上是关于Azure Function Nodejs 中是不是可以休眠?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用节点 js 检查“s3”/“azure”路径中是不是存在文件
nodejs vue SyntaxError:Block-scoped declarations (let,const,function,class) not yet supported