I have a Firebase queue and two specs, on the same queue and from the client I am making a push on the queue with the start state as only read_write_start, either both my specs gets executed by default or the wrong spec gets executed i.e. the "read_start" spec gets executed
Client Side :
var readWriteTokenData = {};
readWriteTokenData ["_start"] = "read_write_start";
$firebaseArray(QueueRef.child('tasks')).$add(readWriteTokenData);
SERVER SIDE :
var queueRef = new Firebase('https://<INSTANCE>.firebaseio.com/queue');
var specs: {
"read_write_token": {
"_start_state" : "read_write_start",
"in_progress_state": "read_write_in_progress",
"finished_state": "read_write_finished",
"error_state": "read_write_error"
},
"read_token": {
"_start_state" : "read_start",
"in_progress_state": "read_in_progress",
"finished_state": "read_finished",
"error_state": "read_error"
}
}
queueRef.child('specs').update(specs);
var option1 = {
'specId' : 'read_token',
'numWorkers': 1
};
var option2 = {
'specId' : 'read_write_token',
'numWorkers': 1
};
var ReadQueue = new Queue(queueRef,option1,function(data, progress, resolve, reject) {
data.readToken = 'PQR';
if(readToken){
resolve(data);
} else {
reject(data);
}
});
var ReadWriteQueue = new Queue(queueRef,option2,function(data, progress, resolve, reject) {
data.readWriteToken = 'ABC';
if(readWriteToken){
resolve(data);
} else {
reject(data);
}
});
I am not sure what am i missing here the documentation is not clear
Do I have to instantiate a new Queue Reference for each spec? Is spec only for chaining jobs ?
Should i do this
var queueRef1 = new Firebase('https://<INSTANCE>.firebaseio.com/read/queue');
var queueRef2 = new Firebase('https://<INSTANCE>.firebaseio.com/readwrite/queue');