Commit 47ea333d authored by project's avatar project

--no commit message

--no commit message
parent d9801661
......@@ -5,6 +5,7 @@ var app = express();
var bodyParser = require('body-parser');
var ConnCtx = ctx.getLib('lib/conn/connection-context');
var JobManager = require('./lib/job-manager')
var API_PORT = 19980;
module.exports.create = function(cfg)
......@@ -36,11 +37,11 @@ ControllerAPI.prototype._http_start = function()
extended: true
}));
// var context = ctx.getLib('lib/ws/http-context');
// app.use(context.middleware({
// 'httpacl' : self.httpacl,
// 'jobcaller' : self.jobcaller
// }));
var context = ctx.getLib('lib/ws/http-context');
app.use(context.middleware({
'conn' : self.conn,
'jobManager' : JobManager.create({'conn' : self.conn})
}));
app.use(require('./ws'));
......
var ctx = require('../../context');
var cfg = ctx.config;
var JobRegistry = ctx.getLib('lib/mems/job-registry');
var JUtils = ctx.getLib('lib/job/jobutils');
module.exports.create = function(cfg)
{
return new JobManager(cfg);
}
function JobManager (cfg)
{
this.config = cfg;
this.conn = cfg.conn;
this.mem = this.conn.getMemstore();
this.job_registry = JobRegistry.create({'redis':this.mem});
}
JobManager.prototype.listJob = function (prm,cb)
{
var self = this;
var param = prm;
if(typeof prm == 'function')
{
cb = prm;
param = {};
}
self.job_registry.listJob(function (err,jobs){
if(jobs){
cb(null,jobs);
}else{
cb(null,[]);
}
});
}
JobManager.prototype.getJob = function (prm,cb)
{
var self = this;
self.job_registry.getJob(prm.jid,function (err,jobcfg){
cb(err,jobcfg)
})
}
var express = require('express');
var router = express.Router();
router.use('/jobs',require('./service-jobs'));
router.use('/jobs',require('./ws-jobs'));
module.exports = router;
......@@ -5,19 +5,33 @@ var router = express.Router();
var cfg = ctx.config;
var response = ctx.getLib('lib/ws/response');
var request = ctx.getLib('lib/ws/request');
router.get('/',function (req, res) {
var reqHelper = request.create(req);
var respHelper = response.create(res);
var jid = req.params.id;
var jm = req.context.jobManager;
//get_object(reqHelper,respHelper,jid);
respHelper.responseOK({'status':'OK'});
jm.listJob({},function (err,jobs){
respHelper.responseOK(jobs);
})
});
router.get('/:jid',function (req, res) {
var reqHelper = request.create(req);
var respHelper = response.create(res);
var jid = req.params.jid;
var jm = req.context.jobManager;
jm.getJob({'jid':jid},function (err,jobs){
if(jobs)
{
respHelper.responseOK(jobs);
}else{
respHelper.response404('Not found');
}
})
});
module.exports = router;
function validate (jobcfg)
{
var ret = true;
if(!jobcfg){ return false;}
if(!jobcfg.job_id){return false;}
if(!validate_trigger(jobcfg.trigger)){return false;}
return ret;
}
function validate_trigger (trigger)
{
if(!trigger){return false;}
if(!trigger.type){return false;}
return true;
}
module.exports.validate = validate;
......@@ -46,3 +46,18 @@ JobRegistry.prototype.setJob = function(jobid,job,cb)
}
}
JobRegistry.prototype.listJob = function(cb)
{
var self = this;
var jobKeys = PREFIX + ':*';
this.mem.keys(jobKeys,function(err,keys){
if(err || !keys){return cb(err,null);}
var arr =[];
for(var i = 0, len = keys.length; i < len; i++) {
arr.push(keys[i].split(':')[3]);
}
cb(err,arr);
});
}
......@@ -123,67 +123,67 @@ const crypto = require("crypto");
// });
var redis = require('redis');
var handle = {'mem' : redis.createClient('redis://bigmaster.igridproject.info:6379/1')}
var input_data = {};
var job_config = {
"job_id" : "example",
"active" : true,
"trigger" : {
"type": "cron",
"cmd": "29,59 * * * * *"
},
"data_in" : {
"type": "example"
},
"data_transform" : {
"type": "noop"
},
"data_out" : {
"type": "console"
}
}
var ag = {
"job_id" : "agritronics-gistda-01",
"active" : true,
"trigger" : {
"type": "cron",
"cmd": "15,45 * * * *"
},
"data_in" : {
"type": "agritronics",
"profile": {
"station_id": "GISDA-01",
"latitude": "",
"longitude": ""
},
"param": {
"url": "http://agritronics.nstda.or.th/ws/get.php",
"appkey": "0c5a295bd8c07a081f4f0061eee6665c38",
"station_id": "GISTDA-01",
"data_types": [
{"type": "1", "node_id": "4096"},
{"type": "2", "node_id": "4096"},
{"type": "4", "node_id": "4096"},
{"type": "5", "node_id": "4096"},
{"type": "6", "node_id": "4096"},
{"type": "7", "node_id": "4096"},
{"type": "8", "node_id": "4096"},
{"type": "10", "node_id": "4096"},
{"type": "2021", "node_id": "7328"},
{"type": "2022", "node_id": "7328"}
],
"init_observed_date": "2017-03-10",
"init_observed_time": "12:00:00"
}
},
"data_transform" : {
"type": "agritronics"
},
"data_out" : {
"type": "console"
}
}
// var handle = {'mem' : redis.createClient('redis://bigmaster.igridproject.info:6379/1')}
// var input_data = {};
// var job_config = {
// "job_id" : "example",
// "active" : true,
// "trigger" : {
// "type": "cron",
// "cmd": "29,59 * * * * *"
// },
// "data_in" : {
// "type": "example"
// },
// "data_transform" : {
// "type": "noop"
// },
// "data_out" : {
// "type": "console"
// }
// }
//
// var ag = {
// "job_id" : "agritronics-gistda-01",
// "active" : true,
// "trigger" : {
// "type": "cron",
// "cmd": "15,45 * * * *"
// },
// "data_in" : {
// "type": "agritronics",
// "profile": {
// "station_id": "GISDA-01",
// "latitude": "",
// "longitude": ""
// },
// "param": {
// "url": "http://agritronics.nstda.or.th/ws/get.php",
// "appkey": "0c5a295bd8c07a081f4f0061eee6665c38",
// "station_id": "GISTDA-01",
// "data_types": [
// {"type": "1", "node_id": "4096"},
// {"type": "2", "node_id": "4096"},
// {"type": "4", "node_id": "4096"},
// {"type": "5", "node_id": "4096"},
// {"type": "6", "node_id": "4096"},
// {"type": "7", "node_id": "4096"},
// {"type": "8", "node_id": "4096"},
// {"type": "10", "node_id": "4096"},
// {"type": "2021", "node_id": "7328"},
// {"type": "2022", "node_id": "7328"}
// ],
// "init_observed_date": "2017-03-10",
// "init_observed_time": "12:00:00"
// }
// },
// "data_transform" : {
// "type": "agritronics"
// },
// "data_out" : {
// "type": "console"
// }
// }
// var JobTask = ctx.getLib('jobworker/lib/jobtask');
......@@ -219,18 +219,24 @@ var ag = {
// });
var client = redis.createClient('redis://bigmaster.igridproject.info:6379/1');
//
// client.keys('bs:jobs:*', function (err, keys) {
// if (err) return console.log(err);
//
// for(var i = 0, len = keys.length; i < len; i++) {
// console.log(keys[i]);
// client.get(keys[i], function(err, data){
// console.log(data);
// });
// }
// });
//var client = redis.createClient('redis://bigmaster.igridproject.info:6379/1');
var client = redis.createClient('redis://localhost:9736/1');
client.keys('bs:regis:jobs:*', function (err, keys) {
if (err) return console.log(err);
var arr =[];
for(var i = 0, len = keys.length; i < len; i++) {
//console.log(keys[i]);
arr.push(keys[i].split(':')[3]);
client.get(keys[i], function(err, data){
var obj_data = JSON.parse(data);
//arr.push(obj_data);
});
}
console.log(arr);
});
// var CronList = ctx.getLib('lib/mems/cronlist');
//
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment