当前位置: 首页 > news >正文

申请网站服务器大数据与网站开发技术

申请网站服务器,大数据与网站开发技术,企查查企业信息,圣宠宠物网站建设总体思路是#xff0c;主节点接收到任务请求#xff0c;将根据任务情况拆分成多个任务块#xff0c;将任务块标识的主键放入redis。发送redis消息#xff0c;等待其他节点运行完毕#xff0c;结束处理。接收到信息的节点注册本节点信息到redis、开启多线程、获取任务块、执… 总体思路是主节点接收到任务请求将根据任务情况拆分成多个任务块将任务块标识的主键放入redis。发送redis消息等待其他节点运行完毕结束处理。接收到信息的节点注册本节点信息到redis、开启多线程、获取任务块、执行任务、结束处理。 1、主节点接收任务请求 Overridepublic void executeTaskInfo(PrepareDTO prepareDTO) {//异常标记String taskInfo prepareDTO.getTaskId();//任务分组状态String taskStatus ;try {log.info(数据准备任务并设定任务执行状态,{}, prepareDTO);this.dataPrepareBo.doStartGroupJobInfo(prepareDTO);//给redis集合中放计算对象log.info(开始放入计算任务:{}, prepareDTO);boolean getTaskFlag this.dataPrepareBo.pushCalculationObject(prepareDTO);if (!getTaskFlag) {taskStatus String.format(没有获取数据或计划已取消,%s, taskInfo);log.error(taskStatus);throw new Exception(taskStatus);}//发消息执行缓存中任务log.info(发消息执行任务:{}, prepareDTO);sendMessage(prepareDTO);//等待任务执行完毕log.info(等待任务执行结果);taskStatus this.getGroupUpLoadTaskFinsh(prepareDTO);} catch (Exception e) {//捕获日志e.printStackTrace();taskStatus 获取任务状态异常 e;log.info(taskStatus);dataPrepareBo.putExceptionMsg2Cache(taskInfo, 数据准备分发计算任务线程异常: taskStatus);} finally {//做任务结束处理this.doGroupTaskFinshpPocess(prepareDTO, taskStatus);}} 2发送消息 Overridepublic void sendMessage(String topic, String msg) {this.redisTemplate.convertAndSend(topic, msg);} 3节点接收任务并执行 public void doUpLoadTask(String msg) throws Exception {log.info(开始执行明细任务{} msg);String taskId this.getTaskId(msg);try {Object cancelFlag this.redisTemplate.opsForValue().get(String.format(EngineConstant.JOB_CANCEL_FLAG, taskId));if(cancelFlag ! null 1.equals(cancelFlag.toString())){log.info(本次任务已取消);return;}//上传本机执行信息到redisthis.cacheBo.initGroupUpLoadTaskStats(taskId,ENGINE_DISTRIBUTION_RUNNING.getKey());//从缓存获取任务,获取任务后启线程执行任务。如果没获取到任务则本节点任务执行完毕//循环获取任务this.groupTaskProcessBO.doGroupTaskProcess(taskId, null);//处理结束this.cacheBo.finishGroupUpLoadTaskStats(taskId,ENGINE_DISTRIBUTION_RUNNING.getKey());} catch (Exception e) {//记录日志taskUpldExeLogCDTO.setRunStas(-1);String exceptionInfo this.taskLogUtils.getExceptionInfo(e) ;taskUpldExeLogCDTO.setAbnInfo(exceptionInfo);throw e;} finally {//记录日志taskUpldExeLogCDTO.setEndtime(DateUtil.getCurrentDate());if(-1.equals(taskUpldExeLogCDTO.getRunStas())){//异常结束this.taskLogUtils.sendLogInfo(taskUpldExeLogCDTO,执行上传任务异常);} else {//正常结束taskUpldExeLogCDTO.setRunStas(1);this.taskLogUtils.sendLogInfo(taskUpldExeLogCDTO,执行上传任务正常);}}} 4开启线程执行任务 Overridepublic CalculationDTO doGroupTaskProcess(String taskId, TaskUpldExeLogCDTO taskUpldExeLogCDTO) throws Exception {ListFuture futureList new ArrayList();//开始执行明细任务处理ThreadPoolTaskExecutor taskTransferExecutor ToolUtil.getExecutor(engine-file-tasks-pool-, Math.min(parallelProcessNum,10), 8);ExecutorListHolder.putThreadPool(String.format(GroupConstant.PREPARE_ENGINE_POOL,taskId), taskTransferExecutor.getThreadPoolExecutor());for(int i 0 ; i parallelProcessNum ; i) {DoGroupUpLoadTaskThread doGroupUpLoadTaskThread new DoGroupUpLoadTaskThread(taskId, redisTemplate, calculationBo, null, null);Future? future taskTransferExecutor.submit(doGroupUpLoadTaskThread);futureList.add(future);}if (!CollectionUtil.isEmpty(futureList)) {futureList.forEach(f - {try {f.get(GroupTaskProcessBOImpl.maxTime, TimeUnit.SECONDS);} catch (Exception e) {e.printStackTrace();}});}log.info(本节点执行分组任务执行完毕{}, taskId : GroupConstant.IDENTITY);return null;} 5线程执行明细 Overridepublic ResponseDTO call() throws Exception {//执行任务while(true) {FilterTableUniqueDTO filterTableUniqueDTO (FilterTableUniqueDTO)this.redisTemplate.opsForList().leftPop(String.format(ENGINE_FILTERTABLEUNIQUE_QUEUE.getKey(), taskId));log.debug(取出任务: filterTableUniqueDTO);if(null filterTableUniqueDTO) {break ;}long lastNum this.redisTemplate.opsForList().size(String.format(ENGINE_FILTERTABLEUNIQUE_QUEUE.getKey(), taskId));log.info(生成文件剩余任务数量: lastNum); // 处理任务calculationBo.GenerateFile(filterTableUniqueDTO, taskUpldDetlLogCDTO);}return null;} 以上是主要入口总体思路涉及代码详细实现整理起来涉及内容比较繁多将在第二部分分享。
http://www.w-s-a.com/news/731124/

相关文章:

  • 临沂市建设局网站公示军事新闻头条2023
  • 购物网网站建设lamp 做网站
  • 做网站网站庄家html5网站开发技术
  • 无锡门户网站制作电话广告设计公司的未来
  • 白云区专业网站建设网页设计模拟试题答案
  • 毕业设计网站代做多少钱制作旅游网站设计概述
  • 网站开发维护运维无人在线电视剧免费观看
  • 电子商务网站建设开题报告展馆网站建设
  • 门户网站建设的背景和意义手机网站前
  • 国内免费视频素材无水印素材网站国家最新消息
  • 襄阳seo站内优化学做网站论坛教程
  • 文明网站建设情况报告wordpress伪静态配置
  • 牙科网站模板个人微信网站建设
  • 厦门公司注册网站dw做简单小说网站
  • 网站建好以后每年都续费么wordpress 仿聚划算
  • 单位网站建设收费标准网上开店铺需要多少钱
  • 灯饰网站需要这么做申请域名的流程
  • 软件下载网站怎么赚钱wordpress减少数据库查询
  • 什么兼职网站可以做视频剪辑常见的推广平台有哪些
  • 网站开发是用html还是jsp设迹官网
  • 查公司信息的网站怎么学wordpress
  • 白银做网站长春一般建一个网站需要多少钱
  • 帮人做钓鱼网站的人网络推广培训职业学校
  • 淘宝客有必须做网站吗网站开发的形式有( )
  • 网站建设:上海珍岛网页版qq空间登录
  • 网站服务器ipteahouse wordpress主题
  • 深州市住房保障和城乡建设局网站做网站公司叫什么
  • 织梦网站转跳手机站注册公司代理记账费用
  • wordpress建站Pdf亚马逊aws在线观看
  • 做网站的外包公司有哪些WordPress调用json数据