Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
N
node-bigstream
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bs
node-bigstream
Commits
47ea333d
Commit
47ea333d
authored
May 18, 2017
by
project
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
--no commit message
--no commit message
parent
d9801661
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
206 additions
and
79 deletions
+206
-79
controller-api.js
coreservice/controller-api.js
+6
-5
job-manager.js
coreservice/lib/job-manager.js
+47
-0
index.js
coreservice/ws/v1/index.js
+1
-1
ws-jobs.js
coreservice/ws/v1/ws-jobs.js
+37
-0
jobutils.js
lib/job/jobutils.js
+21
-0
job-registry.js
lib/mems/job-registry.js
+15
-0
test.js
test/test.js
+79
-73
No files found.
coreservice/controller-api.js
View file @
47ea333d
...
@@ -5,6 +5,7 @@ var app = express();
...
@@ -5,6 +5,7 @@ var app = express();
var
bodyParser
=
require
(
'body-parser'
);
var
bodyParser
=
require
(
'body-parser'
);
var
ConnCtx
=
ctx
.
getLib
(
'lib/conn/connection-context'
);
var
ConnCtx
=
ctx
.
getLib
(
'lib/conn/connection-context'
);
var
JobManager
=
require
(
'./lib/job-manager'
)
var
API_PORT
=
19980
;
var
API_PORT
=
19980
;
module
.
exports
.
create
=
function
(
cfg
)
module
.
exports
.
create
=
function
(
cfg
)
...
@@ -36,11 +37,11 @@ ControllerAPI.prototype._http_start = function()
...
@@ -36,11 +37,11 @@ ControllerAPI.prototype._http_start = function()
extended
:
true
extended
:
true
}));
}));
//
var context = ctx.getLib('lib/ws/http-context');
var
context
=
ctx
.
getLib
(
'lib/ws/http-context'
);
//
app.use(context.middleware({
app
.
use
(
context
.
middleware
({
// 'httpacl' : self.httpacl
,
'conn'
:
self
.
conn
,
// 'jobcaller' : self.jobcaller
'jobManager'
:
JobManager
.
create
({
'conn'
:
self
.
conn
})
//
}));
}));
app
.
use
(
require
(
'./ws'
));
app
.
use
(
require
(
'./ws'
));
...
...
coreservice/lib/job-manager.js
0 → 100644
View file @
47ea333d
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
)
})
}
coreservice/ws/v1/index.js
View file @
47ea333d
var
express
=
require
(
'express'
);
var
express
=
require
(
'express'
);
var
router
=
express
.
Router
();
var
router
=
express
.
Router
();
router
.
use
(
'/jobs'
,
require
(
'./
service
-jobs'
));
router
.
use
(
'/jobs'
,
require
(
'./
ws
-jobs'
));
module
.
exports
=
router
;
module
.
exports
=
router
;
coreservice/ws/v1/
service
-jobs.js
→
coreservice/ws/v1/
ws
-jobs.js
View file @
47ea333d
...
@@ -5,19 +5,33 @@ var router = express.Router();
...
@@ -5,19 +5,33 @@ var router = express.Router();
var
cfg
=
ctx
.
config
;
var
cfg
=
ctx
.
config
;
var
response
=
ctx
.
getLib
(
'lib/ws/response'
);
var
response
=
ctx
.
getLib
(
'lib/ws/response'
);
var
request
=
ctx
.
getLib
(
'lib/ws/request'
);
var
request
=
ctx
.
getLib
(
'lib/ws/request'
);
router
.
get
(
'/'
,
function
(
req
,
res
)
{
router
.
get
(
'/'
,
function
(
req
,
res
)
{
var
reqHelper
=
request
.
create
(
req
);
var
reqHelper
=
request
.
create
(
req
);
var
respHelper
=
response
.
create
(
res
);
var
respHelper
=
response
.
create
(
res
);
var
j
id
=
req
.
params
.
id
;
var
j
m
=
req
.
context
.
jobManager
;
//get_object(reqHelper,respHelper,jid);
jm
.
listJob
({},
function
(
err
,
jobs
){
respHelper
.
responseOK
({
'status'
:
'OK'
});
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
;
module
.
exports
=
router
;
lib/job/jobutils.js
0 → 100644
View file @
47ea333d
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
;
lib/mems/job-registry.js
View file @
47ea333d
...
@@ -46,3 +46,18 @@ JobRegistry.prototype.setJob = function(jobid,job,cb)
...
@@ -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
);
});
}
test/test.js
View file @
47ea333d
...
@@ -123,67 +123,67 @@ const crypto = require("crypto");
...
@@ -123,67 +123,67 @@ const crypto = require("crypto");
// });
// });
var
redis
=
require
(
'redis'
);
var
redis
=
require
(
'redis'
);
var
handle
=
{
'mem'
:
redis
.
createClient
(
'redis://bigmaster.igridproject.info:6379/1'
)}
//
var handle = {'mem' : redis.createClient('redis://bigmaster.igridproject.info:6379/1')}
var
input_data
=
{};
//
var input_data = {};
var
job_config
=
{
//
var job_config = {
"job_id"
:
"example"
,
//
"job_id" : "example",
"active"
:
true
,
//
"active" : true,
"trigger"
:
{
//
"trigger" : {
"type"
:
"cron"
,
//
"type": "cron",
"cmd"
:
"29,59 * * * * *"
//
"cmd": "29,59 * * * * *"
},
//
},
"data_in"
:
{
//
"data_in" : {
"type"
:
"example"
//
"type": "example"
},
//
},
"data_transform"
:
{
//
"data_transform" : {
"type"
:
"noop"
//
"type": "noop"
},
//
},
"data_out"
:
{
//
"data_out" : {
"type"
:
"console"
//
"type": "console"
}
//
}
}
//
}
//
var
ag
=
{
//
var ag = {
"job_id"
:
"agritronics-gistda-01"
,
//
"job_id" : "agritronics-gistda-01",
"active"
:
true
,
//
"active" : true,
"trigger"
:
{
//
"trigger" : {
"type"
:
"cron"
,
//
"type": "cron",
"cmd"
:
"15,45 * * * *"
//
"cmd": "15,45 * * * *"
},
//
},
"data_in"
:
{
//
"data_in" : {
"type"
:
"agritronics"
,
//
"type": "agritronics",
"profile"
:
{
//
"profile": {
"station_id"
:
"GISDA-01"
,
//
"station_id": "GISDA-01",
"latitude"
:
""
,
//
"latitude": "",
"longitude"
:
""
//
"longitude": ""
},
//
},
"param"
:
{
//
"param": {
"url"
:
"http://agritronics.nstda.or.th/ws/get.php"
,
//
"url": "http://agritronics.nstda.or.th/ws/get.php",
"appkey"
:
"0c5a295bd8c07a081f4f0061eee6665c38"
,
//
"appkey": "0c5a295bd8c07a081f4f0061eee6665c38",
"station_id"
:
"GISTDA-01"
,
//
"station_id": "GISTDA-01",
"data_types"
:
[
//
"data_types": [
{
"type"
:
"1"
,
"node_id"
:
"4096"
},
//
{"type": "1", "node_id": "4096"},
{
"type"
:
"2"
,
"node_id"
:
"4096"
},
//
{"type": "2", "node_id": "4096"},
{
"type"
:
"4"
,
"node_id"
:
"4096"
},
//
{"type": "4", "node_id": "4096"},
{
"type"
:
"5"
,
"node_id"
:
"4096"
},
//
{"type": "5", "node_id": "4096"},
{
"type"
:
"6"
,
"node_id"
:
"4096"
},
//
{"type": "6", "node_id": "4096"},
{
"type"
:
"7"
,
"node_id"
:
"4096"
},
//
{"type": "7", "node_id": "4096"},
{
"type"
:
"8"
,
"node_id"
:
"4096"
},
//
{"type": "8", "node_id": "4096"},
{
"type"
:
"10"
,
"node_id"
:
"4096"
},
//
{"type": "10", "node_id": "4096"},
{
"type"
:
"2021"
,
"node_id"
:
"7328"
},
//
{"type": "2021", "node_id": "7328"},
{
"type"
:
"2022"
,
"node_id"
:
"7328"
}
//
{"type": "2022", "node_id": "7328"}
],
//
],
"init_observed_date"
:
"2017-03-10"
,
//
"init_observed_date": "2017-03-10",
"init_observed_time"
:
"12:00:00"
//
"init_observed_time": "12:00:00"
}
//
}
},
//
},
"data_transform"
:
{
//
"data_transform" : {
"type"
:
"agritronics"
//
"type": "agritronics"
},
//
},
"data_out"
:
{
//
"data_out" : {
"type"
:
"console"
//
"type": "console"
}
//
}
}
//
}
// var JobTask = ctx.getLib('jobworker/lib/jobtask');
// var JobTask = ctx.getLib('jobworker/lib/jobtask');
...
@@ -219,18 +219,24 @@ var ag = {
...
@@ -219,18 +219,24 @@ var ag = {
// });
// });
var
client
=
redis
.
createClient
(
'redis://bigmaster.igridproject.info:6379/1'
);
//var client = redis.createClient('redis://bigmaster.igridproject.info:6379/1');
//
var
client
=
redis
.
createClient
(
'redis://localhost:9736/1'
);
// client.keys('bs:jobs:*', function (err, keys) {
// if (err) return console.log(err);
client
.
keys
(
'bs:regis:jobs:*'
,
function
(
err
,
keys
)
{
//
if
(
err
)
return
console
.
log
(
err
);
// for(var i = 0, len = keys.length; i < len; i++) {
// console.log(keys[i]);
var
arr
=
[];
// client.get(keys[i], function(err, data){
for
(
var
i
=
0
,
len
=
keys
.
length
;
i
<
len
;
i
++
)
{
// console.log(data);
//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');
// var CronList = ctx.getLib('lib/mems/cronlist');
//
//
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment