Tag: firebase queue

在队列中处理任务后更新客户端

Firebase客户端可以将任务添加到队列中,如下所示: var tasks = db.ref('quote-request-queue/tasks'); tasks.push({'need': 'quote for customer'}); 这个任务代表一个请求得到一个项目的报价。 在后端,Firebase队列工作人员将完成任务并完成一些工作,但在后端工作完成后更新客户端的规范方式是什么? 我们是否应该使用login用户模型中的一个属性,为此客户端监听更改? login的用户可以监听自己的模型的变化,然后更改将获得报价数据? 除了已login的用户模型本身之外,也许还可以在DB中使用另一个模型?

节点工作人员崩溃与“火警警告”

我有一个在节点上运行的firebase-worker( https://github.com/firebase/firebase-queue )。 我有一个工作需要做的特定任务的大量积压,但通常任务失败,然后工作人员停止以下错误消息: Oct 13 20:34:57 Worker app/low_priority_worker.1: FIREBASE WARNING: transaction at /low_priority_queue/tasks/-KTupoITHgT10u5uasQq failed: disconnect Oct 13 20:34:57 Worker app/low_priority_worker.1: FIREBASE WARNING: transaction at /user_dashboard/-JmteP57yEdeDFzAyv-p/1476403200000/views/-KTuI5464YGfBx9KEmNs failed: disconnect 工作人员正在执行的任务是在Firebasepath上增加一个值: # Increment comment amount on listing incrementDashboardListingTypeAmountPromise = BaseHelper.firebaseDatabase.ref("user_dashboard").child(@data.seller_id).child("#{Date.create().setUTC(true).beginningOfDay().format("{x}")}").child(@data.type).child(@data.listing_id).transaction (currentValue) -> (currentValue || 0) + 1 # Promise callback Promise.all([incrementDashboardListingTypeAmountPromise].compact()).then (results) => # Execute callback callback() […]

对高度请求的队列进行Firebase优化

基于firebase的游戏,其中每个用户在同一个waitingList上推送一个请求,以便一个nodeJS服务器为每两个等待的玩家分别准备一个循环游戏。 我在nodeJS上使用Firebase JS v3: var ref = firebase.database().ref(); //this is where we populate rounds var gamesRef = ref.child('games'); //users path var usersRef = ref.child('users'); //waiting queue var waitingRef = ref.child('waitingList'); //listen for each new queued user waitingRef.on('child_added', function(snap){ waitingRef.transaction(function(waitingList){ if(waitingList !== null){ var keys = Object.keys(waitingList); //take two players if(keys.length >= 2){ //prepare a new […]

在Firebase队列中重试逻辑

我在我的node.js应用程序中使用了fire-base队列。 我想了解,如果有任何方式可用,以便队列可以重试和处理剩余的任务 ,以防万一任何任务执行时发生错误。

firebase队列 – 重试不起作用?

试图找出如何使重试工作。 这是我的FB队列的外观: { "specs" : { "default_spec" : { "retries" : 3, "timeout" : 60000 } }, "tasks" : { } } 这就是我正在testing如果重试工作: 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" : { […]