首页 > 其他分享 >异步处理

异步处理

时间:2023-11-20 20:15:04浏览次数:28  
标签:异步 Map 处理 void paraMap type public

异步处理方式,如下代码

ProcStatusChangeEvent<Supplier<Boolean>> eventSendMsg = new ProcStatusChangeEvent<>(
           () -> {
            //下方为业务代码,此处为发送短信例子
            this.sendMsg(assignee,noteById.getCreateId(),buffer.toString());
            return true;
      }
 );
  //异步处理,可以看到GlobalEvent类的异步处理方式
  GlobalEvent.asyncBus().post(eventSendMsg);

会有两个实体类

//第一个
public class ProcStatusChangeEvent<T> extends BaseEvent<T, ProcStatusChangeDealer<T>> {
    public ProcStatusChangeEvent(T data){
        super(data);
    }
}


//第二个
@Slf4j
public class ProcStatusChangeDealer<T> extends BaseDealer<T> {

    @Override
    public void accept(T t) {
        Supplier<Boolean> action = (Supplier<Boolean>)t;
        boolean actSuccess = action.get();
        log.debug("event_dealer_ProcStatusChange 事件响应:"+(actSuccess?"成功":"失败"));
    }
}

同时会封装一个实体类

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.ll.igo.tools.event.entity;

import java.util.Map;
import java.util.function.Consumer;

public class BaseDealer<T> implements Consumer<T> {
    protected Map<String, Object> paraMap = null;
    protected String type = null;

    public BaseDealer() {
    }

    public BaseDealer(Map<String, Object> paraMap) {
        this.paraMap = paraMap;
    }

    public void setParaMap(Map<String, Object> paraMap) {
        this.paraMap = paraMap;
    }

    public Map<String, Object> getParaMap() {
        return this.paraMap;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return this.type;
    }

    public void accept(T t) {
    }
}

 

标签:异步,Map,处理,void,paraMap,type,public
From: https://www.cnblogs.com/YHSDDJM/p/17844715.html

相关文章

  • Vue公共loading升级版(处理并发异步差时响应)
    公共loading是项目系统中很常见的场景,处理方式也不外乎三个步骤:1.通过全局状态管理定义状态值(vuex、pinia等)。2.在程序主入口监听状态值变化,从而展示/隐藏laoding动画。3.在请求和相应拦截器中变更状态值。第一二步骤处理大同小异,但在第三步中,网上很多博文分享的方法是:在请求......
  • 虚拟化系统快速优化处理
    虚拟化系统快速优化处理背景前期捯饬tidb后来又进行了几个Oracle异常问题的分析感觉系统非常复杂,还是需要有一些简要脚本进行初始化比较方便快捷.这里总结一下,便于后面遇到时进行处理.用户相关useraddzhaobshechoNewPassword|passwd--stdinzhaobshsed-i'/......
  • python处理Excel文件的导入
    处理的文件:label.xlsxAPIDGroupBorrower【HoldingCompanyID】GroupBorrower【TypeofCompany】Watermark3.0(Migrationclientonly)【EffectiveDate】12681974Affiliate 17411268HoldingCompany 18902073Affiliate2023/12/3019552136......
  • python处理数据的导出到Excel
    importdatetimeimportjsonimportosimportpandasaspdfromsqlalchemyimportcreate_enginefromsqlalchemy.sqlimporttext#数据库连接配置,请根据你的实际情况修改db_config={'host':'your_database_host','user':'your_data......
  • Webman框架使用异步任务
    首先在app目录下创建Task.php<?phpnamespaceapp;useWorkerman\Connection\TcpConnection;classTask{/***只会执行一次*@returnvoid*/publicfunctiononWorkerStart(){echo"进程启动";}publicfunctiononMessage($connection,$task_data){$connect......
  • JAVA分批处理数据简单示例
    功能描述在处理业务时,经常遇到需要分批次处理数据的场景,例如有105条数据,每次推送20条,分批次推送最后不足20条数据时,一次性推送全部剩余数据DEMO示例packageshiguang.test;importjava.util.ArrayList;importjava.util.List;publicclassBatchProcessingExample{......
  • go form表单数据处理
    每日一库:表单数据处理原创 孟斯特 孟斯特 2023-11-2010:00 发表于北京收录于合集#每日一库38个#Golang91个在Go语言中,处理HTTP请求中的表单数据是一项常见任务。github.com/go-playground/form/v4 是一个强大而灵活的库,用于轻松地在Go语言中处理表单数......
  • 小小发票拦住出海“巨头”,合合信息智能文档处理技术助力企业重塑财务管理流程
    小小发票拦住出海“巨头”,合合信息智能文档处理技术助力企业重塑财务管理流程 作为连接企业采购、生产、运营、销售等经营行为的枢纽,财务系统的数字化、智能化升级近年来变得愈发重要。发票的录入、存储关乎企业应收账款管理和税务规范,通过技术手段提升发票管理的精准度与效率......
  • 常见问题处理 --- asp网站迁移
    asp网站迁移步骤1.在windowsserver的服务器管理器安装iis,asp,net2.将文件复制到默认网站目录下C:\inetpub\wwwroot并网站文件授权admin权限3.打开iis管理器,asp配置 启用父路径true ,在defaultwebsite编辑绑定端口号2.替换网页中写死的链接3.替换网页中写死的端口号,例如C:\in......
  • springboot 控制序列化反序列化示例(接口返回数据处理/接口接收数据处理)
    1.返回Long转JSONpackagecom.mingx.drone.config;importcom.fasterxml.jackson.core.JsonGenerator;importcom.fasterxml.jackson.databind.JsonSerializer;importcom.fasterxml.jackson.databind.SerializerProvider;importjava.io.IOException;/***@Descript......