Name: js-handler/legacy/testtimeout.js
| 1: | function Execution(c,d,e,n,v) { |
| 2: | var code = this.code = c; |
| 3: | var data = this.data = d; |
| 4: | var endpoints = this.endpoints = e; |
| 5: | var status = this.status=false; |
| 6: | var state = this.state ="not executed"; |
| 7: | |
| 8: | |
| 9: | if (typeof(n) != 'undefined' && typeof(v) != 'undefined') |
| 10: | var result = this.result = n; |
| 11: | var value = this.value = v; |
| 12: | |
| 13: | } |
| 14: | |
| 15: | function ready(req, res, next){ |
| 16: | console.log("before"); |
| 17: | var code = " for(var i = 0; i < 10;i++){ data.numberA++; }; console.log('result' + output);"; |
| 18: | // var code = "10 + 20;"; |
| 19: | // var code ="donsole.log()"; |
| 20: | var dataelements={'numberA':50,'content':'text'}; |
| 21: | var endpoints; |
| 22: | var resultname ="output"; |
| 23: | var resultvalue = "5"; |
| 24: | var t = new Execution(code, dataelements, endpoints, resultname,resultvalue); |
| 25: | console.log("t "+JSON.stringify(t)); |
| 26: | //create web worker |
| 27: | var worker=new Worker(function(){ |
| 28: | //receive code and variables |
| 29: | |
| 30: | onmessage = function (event) { |
| 31: | var data =event.data.data; |
| 32: | var code =event.data.code; |
| 33: | var status = false; |
| 34: | console.log("status: "+status); |
| 35: | var result = event.data.result; |
| 36: | var value = event.data.value; |
| 37: | try{ |
| 38: | function execution(){ |
| 39: | this.data; |
| 40: | this.status; |
| 41: | }; |
| 42: | eval('var ' + result + ' = JSON.parse(value)'); |
| 43: | status = eval(code); |
| 44: | console.log("executed "+status); |
| 45: | |
| 46: | //create execution object |
| 47: | |
| 48: | var ex=new execution(); |
| 49: | ex.data=data; |
| 50: | ex.status=status; |
| 51: | ex.result=result; |
| 52: | ex.value=value; |
| 53: | |
| 54: | postMessage(ex); |
| 55: | } catch (e) { |
| 56: | var ex=new execution(); |
| 57: | ex.error=e; |
| 58: | postMessage(ex); |
| 59: | console.log("error "+e); |
| 60: | } |
| 61: | } |
| 62: | }); |
| 63: | |
| 64: | //pass code and vars to worker |
| 65: | worker.postMessage(t); |
| 66: | |
| 67: | |
| 68: | //receiving data from worker after execution |
| 69: | worker.onmessage = function (event) { |
| 70: | t.data=event.data.data; |
| 71: | t.status=event.data.status; |
| 72: | t.error=event.data.error; |
| 73: | t.result=event.data.result; |
| 74: | t.value=event.data.value; |
| 75: | worker.terminate(); |
| 76: | console.log("worker terminated"); |
| 77: | |
| 78: | }; |
| 79: | |
| 80: | |
| 81: | } |
| 82: | |
| 83: | |
| 84: | var port = '9292'; |
| 85: | var host = '0.0.0.0'; |
| 86: | |
| 87: | var restify = require('restify'); |
| 88: | var daemon = require('daemon'); |
| 89: | var opt = require('optimist'); |
| 90: | var url = require('url'); |
| 91: | var fs = require('fs'); |
| 92: | |
| 93: | var asyncEval = require('async-eval'); |
| 94: | var vm=require('vm'); |
| 95: | var Worker=require('webworker-threads').Worker; |
| 96: | var server = restify.createServer(); |
| 97: | server.use(restify.queryParser()); |
| 98: | server.use(restify.bodyParser()); |
| 99: | |
| 100: | server.get('/', getScript); |
| 101: | server.get('/start', ready); |
| 102: | |
| 103: | |
| 104: | server.listen(port, host, function() { |
| 105: | console.log('server list'); |
| 106: | }); |
| 107: | |
| 108: | |
| 109: | function getScript(req, res, next){ |
| 110: | console.log("get get get"); |
| 111: | res.contentType = 'application/json'; |
| 112: | res.send("get"); |
| 113: | } |
