node.js – firebase队列 – 重试不起作用?

试图弄清楚如何重做工作.

这是我的FB队列的样子:

{
  "specs" : {
    "default_spec" : {
      "retries" : 3,
      "timeout" : 60000
    }
  },
  "tasks" : {

  }
}

这就是我测试重试是否有效的方法:

const queue = new Queue(getFirebaseRef(),{'numWorkers': 10} , function (data, progress, resolve, reject) {
        console.log('processing queue message:' + JSON.stringify(data));
        progress(50);

        setTimeout(()=>{
            reject(new Error("error while processing blabla"));

        },2000);
    });

因此,当我将新任务推送到队列时,这是我的工作人员处理之后的样子:

{
  "-KcsTIDBAq1S_fdiwsv6" : {
    "_error_details" : {
      "attempts" : 1,
      "error" : "error while processing blabla",
      "error_stack" : "Error: error while processing blabla\n    at Timeout.setTimeout ...,
      "previous_state" : "in_progress"
    },
    "_progress" : 50,
    "_state" : "error",
    "_state_changed" : 1487089675432,
    "body" : {
      "testing" : "this_is_a_test_task"
    }
  }
}

所以我希望尝试成为3,我也没有在服务中表明处理了3个任务.

问题是,我怎样才能让重试工作.
值得一提的是,这是我在阅读documentation后所做的

最佳答案 你的default_spec目前没用.

您需要在队列选项中添加第二行:

{
  'numWorkers': 10,
  'specId': "default_spec"
}

请阅读以下firebase-queue问题:

https://github.com/firebase/firebase-queue/issues/106#issuecomment-279975546

点赞