我在 Heroku nodejs 服务器上使用 Firebase Queue 来执行一些相当复杂的任务。
它工作得很好,除了有时会抛出错误:
FIREBASE WARNING: transaction at queue/tasks/L5m5MTXLPHRfmaEeCLOjjkEjUIB3 failed: disconnect
当它断开连接时,任务就消失了。即使在规范中指定,也不会发生重试。
总是失败的任务之一的代码
var queue = new Queue(ref.child('queue'), options, function(data, progress, resolve, reject) {
progress(50).catch(function(errorMessage) {
reject(errorMessage);
});
setTimeout(function() {
ref.child(data.level).set(null, function(error) {
if (error) reject();
else
resolve();
});
}, 16000);
});
这只是一个简单的任务,必须在 16 秒后删除一个节点。