【问题标题】:firebase queue - retries are not working?firebase 队列 - 重试不起作用?
【发布时间】:2017-07-03 01:14:31
【问题描述】:

试图弄清楚如何使重试起作用。

这就是我的 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后所做的

【问题讨论】:

    标签: node.js firebase firebase-realtime-database firebase-queue


    【解决方案1】:

    您的default_spec 目前无用。 您需要在队列选项中添加第二行:

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

    请阅读以下 firebase-queue 问题:

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

    【讨论】:

    • 感谢您的回答,抱歉没有写我也尝试在选项中发送“specId”,但是当我尝试这个工作人员时没有处理任何项目。但我在您链接的 github 问题中找到了解决方案。我现在就写答案。再次感谢
    【解决方案2】:

    最终它是@Caerbannog 编写的内容和在代码中添加 default_spec 的组合,而不是直接将其插入 Firebase 控制台。

    所以回顾一下这些是我的变化:

    var options = {
        'specId': "default_spec",
        'numWorkers': 10
    
    };
    

    var queueRef = getFirebaseRef();
    var specs = {
        "default_spec": {
            "start_state": null,
            "in_progress_state": "in_progress",
            "finished_state": null,
            "error_state": "error",
            "timeout": 60000,
            "retries": 50
        }
    };
    queueRef.child('specs').set(specs);
    

    【讨论】:

      猜你喜欢
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      相关资源
      最近更新 更多