【问题标题】:node.js \ how to run my periodic task and avoid collisionsnode.js \ 如何运行我的定期任务并避免冲突
【发布时间】:2016-12-20 13:51:49
【问题描述】:

我有应该每 X 秒运行一次的 node.js 进程。问题是 - 如果当前还没有完成,我不想开始下一次迭代。

什么是优雅的?看看进程在代码的开头是否有两个实例?似乎有点蹩脚..是否有一些 node.js 包可以配置并管理我的任务?

【问题讨论】:

  • 您可以在上一个进程完成时运行下一个计时器。您还可以按进程计算经过的时间。
  • 你是如何开始这些过程的?

标签: node.js scheduled-tasks


【解决方案1】:

您似乎想以异步方式在循环中运行某些任务。您可以为此使用“异步”模块。否则,如果你不想使用任何模块,你应该使用回调来达到你的目的。

var arr = [...]
function A(i) {
  if( i < arr.length ) {
    some_process( arr[i], function(err) {
      if( err ) {
        console.log('error: '+err)
      }
      else {
        A(i+1)
      }
    })
  }
}
A(0)

您还可以使用“setInterval”设置进程之间的时间间隔。您甚至可以使用“睡眠”npm 模块来设置进程之间的时间间隔。希望这对你有用:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    相关资源
    最近更新 更多