【问题标题】: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,您在其中询问一些理论上的解决方案,而不是描述实际问题。如果您描述实际问题(和相关代码),我们可以以更有价值的方式提供帮助。可能这里正确的答案是正确编写异步数据库插入代码,而不是尝试在某处插入一些随机延迟。

标签: node.js mongodb azure


【解决方案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 微秒)

【讨论】:

    猜你喜欢
    • 2017-06-27
    • 2014-10-27
    • 2012-04-14
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    相关资源
    最近更新 更多