UNPKG

flexbiz-server

Version:

Flexible Server

9 lines (8 loc) 3.74 kB
const express=require("express"),app=express(),{workerData}=require("worker_threads"),_=require("lodash"),v8=require("v8"),Server=require("../app"),utils=require("../libs/utils"),handlers=require("../controllers/handlers"),{postToParent,onParentMessage}=require("./worker-utils"),{processAndStoreFile}=require("../libs/vectorService"),handleData=async $msg$$=>{if($msg$$.processFile)try{await processAndStoreFile($msg$$.processFile),postToParent({result:{message:"\u0110\u00e3 x\u1eed l\u00fd file th\u00e0nh c\u00f4ng"}, id_task:$msg$$.id_task})}catch($e$$){postToParent({error:$e$$.error||$e$$.message,id_task:$msg$$.id_task})}else try{let $ctrl$$=global.controllers[$msg$$.module.trim()];if($ctrl$$)if($msg$$.req&&$msg$$.req.handler){const $action$$=handlers[$msg$$.req.handler];if($action$$)try{$action$$($ctrl$$,$msg$$.req,async($error$$,$result$$)=>{try{if($result$$&&($result$$.toObject&&($result$$=utils.convertObjectIdsToStrings($result$$.toObject())),_.isArray($result$$)&&($result$$=$result$$.map($r$$=>$r$$.toObject? utils.convertObjectIdsToStrings($r$$.toObject()):$r$$)),!$result$$?.data||!Buffer.isBuffer($result$$?.data)))try{$result$$=structuredClone($result$$)}catch($e$$){$result$$=JSON.parse(JSON.stringify($result$$))}postToParent({error:$error$$?.message||$error$$?.error||$error$$,result:$result$$,id_task:$msg$$.id_task,code:$error$$?.code})}catch($e$$){Logger.error("[inputWorker] Error post mesage to parent processs",$e$$,$result$$),postToParent({error:$e$$.message,id_task:$msg$$.id_task})}})}catch($e$$){postToParent({error:$e$$.message, id_task:$msg$$.id_task})}else Logger.error("[inputWorker] not found handler",$msg$$.req.handler,". C\u00e1c handler c\u00f3 gi\u00e1 tr\u1ecb:",Object.keys(handlers).join(",")),postToParent({error:"Kh\u00f4ng t\u00ecm th\u1ea5y handler: "+$msg$$.req.handler,id_task:$msg$$.id_task})}else postToParent({error:"Kh\u00f4ng t\u00ecm th\u1ea5y req ho\u1eb7c t\u00ean handler",id_task:$msg$$.id_task});else postToParent({error:"Kh\u00f4ng t\u00ecm th\u1ea5y module "+$msg$$.module,id_task:$msg$$.id_task})}catch($e$$){postToParent({error:$e$$, id_task:$msg$$.id_task})}},handleTask=$msg$$=>{if(_.isString($msg$$))try{$msg$$=JSON.parse($msg$$)}catch($e$$){Logger.error($e$$);postToParent({error:"msg is not valid"});return}$msg$$=$msg$$||{};$msg$$.user=$msg$$.user||($msg$$.req||{}).user;if($msg$$.load||$msg$$.user&&$msg$$.module)if(sv)handleData($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;$configs$$.port=1E4+$configs$$.port;Server(app,{configs:$configs$$,createServer:!1,start_report_pool:!1,start_import_data_pool:!1,start_abci_handler:!1,lite:!0},()=>{Logger.info("\ud83d\udd25 Input worker started:",$msg$$.id_worker);sv=!0;if($msg$$.load)return postToParent({rs:"ready",id_task:$msg$$.id_task});handleData($msg$$)})}else postToParent({error:"msg is not valid"})};let sv=!1;onParentMessage($msg$$=>{handleTask($msg$$)}); if(workerData){let $initData$$=workerData;if(Buffer.isBuffer($initData$$)||$initData$$ instanceof Uint8Array)try{$initData$$=v8.deserialize($initData$$)}catch($e$$){Logger.error("[Worker] L\u1ed7i deserialize workerData:",$e$$),postToParent({error:"Init workerData failed: "+$e$$.message})}handleTask($initData$$)}process.on("uncaughtException",$err$$=>{$err$$.code==="EPIPE"?Logger.error("\u274c [inputworker] Caught EPIPE:",$err$$.message):Logger.error("\u274c [inputworker] Uncaught exception:",$err$$)}); process.on("unhandledRejection",$reason$$=>{Logger.error("\u274c [inputworker] Unhandled promise rejection:",$reason$$)});