如何使用 nodejs 在 firebase-queue 中使用 SpecId 推送任务?
How push a task with SpecId in firebase-queue with nodejs?
在文档示例中我们可以看到:
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
保存新任务
var task = {'userId': "0338ba4d-191f-4044-9af0-4c76f47aeef9"};
ref.child("queue").child("tasks").push(task);
本次推送不触发队列。
如果我从队列中删除 options
,它确实有效(当然)
tl;dr 规范的 start_state
应与任务的 _state
匹配。
您需要将每个规范的定义推送到 Firebase 队列。例如
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
。例如
var task = {'userId': "0338ba4d-191f-4044-9af0-4c76f47aeef9", '_state': 'add_new_user'};
ref.child("queue").child("tasks").push(task);
现在这个任务应该被创建来处理任务的队列 specId
new_user
在文档示例中我们可以看到:
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
var task = {'userId': "0338ba4d-191f-4044-9af0-4c76f47aeef9"};
ref.child("queue").child("tasks").push(task);
本次推送不触发队列。
如果我从队列中删除 options
,它确实有效(当然)
tl;dr 规范的 start_state
应与任务的 _state
匹配。
您需要将每个规范的定义推送到 Firebase 队列。例如
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
。例如
var task = {'userId': "0338ba4d-191f-4044-9af0-4c76f47aeef9", '_state': 'add_new_user'};
ref.child("queue").child("tasks").push(task);
现在这个任务应该被创建来处理任务的队列 specId
new_user