• 服务端接口处理流任务要如何返回?


    痛点:正常接口返回给前端,前端根据返回码判断是否ok即可;

    对于要处理流任务, 接口在什么时候返回呢?

    • 流处理后?那么接口会等待处理完成后返回,这时接口大概率是会超时;
    • 返回void类型,这时前端没有返回码,然后也会报错;

    处理这种问题,我们需要知道return语句是在什么时候返回的就可以了;

    简单理解return语句是在主线程返回,那么我们是不是可以在创建一个子线程去处理流任务,而主线程进行返回呢?

    我们其实只需要一个线程就可以处理该问题:新建一个线程池,或者也可以创建一个单线程, 然后让该线程去执行任务,我们的接口正常返回即可;

    ExecutorService executor = Executors.newFixedThreadPool(1);

    executor.execute(new Runnable() { @SneakyThrows @Override public void run() { kafkaService.consumeKafka(topic, address); } }); return ResponseMessage.successMessage("监听topic:{}的kafka成功", topic);
  • 相关阅读:
    jquery的文档操作
    Websocket简介
    第二次作业
    第一次作业
    本地存储
    轮播图制作
    BOM
    小案例总结
    Web API——DOM
    Web APIs(DOM、BOM)综述
  • 原文地址:https://www.cnblogs.com/leavescy/p/14313291.html
Copyright © 2020-2023  润新知