flexbiz-server
Version:
Flexible Server
6 lines (5 loc) • 2.07 kB
JavaScript
'use strict';const express=require("express"),app=express(),{parentPort,workerData}=require("worker_threads"),_=require("lodash"),Server=require("../app"),handlers=require("../controllers/handlers"),handleReport=$msg$$=>{if(!$msg$$.req||!$msg$$.req.handler)return parentPort.postMessage({error:"Thi\u1ebfu bi\u1ebfn req"});try{let $ctrl$$=global.report_controllers[$msg$$.module];if($ctrl$$)if($msg$$.req.handler){const $action$$=handlers[$msg$$.req.handler];$action$$?$action$$($ctrl$$,$msg$$.req,($error$$,
$result$$)=>{parentPort.postMessage({error:$error$$,result:$result$$,id_task:$msg$$.id_task})}):(console.error("not found handler",$msg$$.req.handler,". C\u00e1c handler c\u00f3 gi\u00e1 tr\u1ecb:",Object.keys(handlers).join(",")),parentPort.postMessage({error:"Kh\u00f4ng t\u00ecm th\u1ea5y handler",id_task:$msg$$.id_task}))}else parentPort.postMessage({error:"Kh\u00f4ng t\u00ecm th\u1ea5y t\u00ean handler",id_task:$msg$$.id_task});else parentPort.postMessage({error:"Kh\u00f4ng t\u00ecm th\u1ea5y module "+
$msg$$.module,id_task:$msg$$.id_task})}catch($e$$){parentPort.postMessage({error:$e$$,id_task:$msg$$.id_task})}};let sv=!1;
const handleTask=$msg$$=>{if($msg$$){if(_.isString($msg$$))try{$msg$$=JSON.parse($msg$$)}catch($e$$){console.error($e$$);parentPort.postMessage({error:"msg is not valid"});return}if(sv)handleReport($msg$$);else{if($msg$$.configs&&_.isString($msg$$.configs))try{$msg$$.configs=JSON.parse($msg$$.configs)}catch($e$$){delete $msg$$.configs,console.info($e$$)}const $configs$$=$msg$$.configs||require("../configs");$configs$$.use_ssl=!1;$configs$$.createIndexes=!1;Server(app,{configs:$configs$$,createServer:!1,
start_import_data_pool:!1,lite:!0},()=>{sv=!0;console.error("Report worker started:",$msg$$.id_worker);if($msg$$.load)return parentPort.postMessage({rs:"ready",id_task:$msg$$.id_task});handleReport($msg$$)})}}else parentPort.postMessage({error:"msg is not valid"})};parentPort.on("message",$msg$$=>{handleTask($msg$$)});workerData&&(()=>{handleTask(workerData)})();setInterval(()=>{parentPort.postMessage("pong")},5E3);