mirror of
https://github.com/optim-enterprises-bv/control-pane.git
synced 2025-10-30 01:22:24 +00:00
wip
This commit is contained in:
53
node/wsClonos.bsWatcher.js
Normal file
53
node/wsClonos.bsWatcher.js
Normal file
@@ -0,0 +1,53 @@
|
||||
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('clonos.bsdstore.ru: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;
|
||||
Reference in New Issue
Block a user