首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在带有nodejs的防火墙队列中使用SpecId推送任务?

如何在带有nodejs的防火墙队列中使用SpecId推送任务?
EN

Stack Overflow用户
提问于 2016-04-06 19:32:21
回答 1查看 592关注 0票数 1

在文档示例中,我们可以看到:

代码语言:javascript
复制
var Queue = require('firebase-queue'),
    Firebase = require('firebase');

var ref = new Firebase('https://<your-firebase>.firebaseio.com');
var queueRef = ref.child('queue');
var messagesRef = ref.child('messages');

var options = {
  'specId': 'new_user'
};

new Queue(queueRef, options, function(data, progress, resolve, reject) {
  // sanitize input message
  console.log(data.message);

  // pass sanitized message and username along to be fanned out
  resolve(data);
});

如何使用specId new_user或其他自定义specId保存新任务

代码语言:javascript
复制
var task = {'userId': "0338ba4d-191f-4044-9af0-4c76f47aeef9"};

ref.child("queue").child("tasks").push(task);

此推送不会触发队列。如果我将options从队列中删除,它就会正常工作(当然)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-07 10:59:03

规范的start_state应该与任务的_state相匹配。

您需要将每个规范的定义推送到Firebase队列。例如:

代码语言:javascript
复制
  ref.child('queue/specs').set({
    new_user: {
     start_state: 'add_new_user',
     in_progress_state: 'add_new_user_in_progress'
    }
  });

这里,new_user是您为队列指定的specId。现在,当您推送一个任务时,您需要为规范将_state设置为start_state。例如:

代码语言:javascript
复制
var task = {'userId': "0338ba4d-191f-4044-9af0-4c76f47aeef9", '_state': 'add_new_user'};
ref.child("queue").child("tasks").push(task);

现在,这个任务应该被拾取为使用specId new_user处理任务而创建的队列。

阅读官方防火墙队列文档中的

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36460698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档