mirror of
https://github.com/optim-enterprises-bv/control-pane.git
synced 2025-10-29 00:52:30 +00:00
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
const bs=require('nodestalker');
|
|
|
|
var bsWatcher=function(ip,port,tube,callback)
|
|
{
|
|
this.ip=ip;
|
|
this.port=port;
|
|
this.tube=tube;
|
|
this.callback=callback;
|
|
this.client=null;
|
|
this.connectionError=false;
|
|
|
|
this.connect();
|
|
}
|
|
bsWatcher.prototype.connect=function()
|
|
{
|
|
this.client=bs.Client('127.0.0.1:11300');
|
|
this.client.addListener('connect', function() {
|
|
this.connectionError=false;
|
|
}.bind(this));
|
|
this.client.addListener('end', function(err) {
|
|
this.connectionError=true;
|
|
setTimeout(this.connect.bind(this),3000);
|
|
}.bind(this));
|
|
this.client.addListener('close', function(err) {
|
|
console.log('connection closed');
|
|
}.bind(this));
|
|
this.watch();
|
|
}
|
|
bsWatcher.prototype.watch=function()
|
|
{
|
|
if(!this.connectionError)
|
|
{
|
|
this.client.watch(this.tube).onSuccess(this.reserve.bind(this));
|
|
}
|
|
}
|
|
bsWatcher.prototype.reserve=function()
|
|
{
|
|
if(!this.connectionError)
|
|
{
|
|
this.client.reserve().onSuccess(this.getJob.bind(this));
|
|
}
|
|
}
|
|
bsWatcher.prototype.getJob=function(job)
|
|
{
|
|
var arr=JSON.parse(job.data);
|
|
if(!this.connectionError)
|
|
{
|
|
this.client.deleteJob(job.id).onSuccess(this.reserve.bind(this));
|
|
this.callback(arr,this.tube);
|
|
}
|
|
}
|
|
|
|
module.exports=bsWatcher; |