zoukankan      html  css  js  c++  java
  • 服务端接口处理流任务要如何返回?

    痛点:正常接口返回给前端,前端根据返回码判断是否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);
  • 相关阅读:
    PHP正则表达式概念
    PHP函数
    PHP基础知识总
    PHP运算符知识点
    PHP基础知识1
    学习JavaScript时的三部分
    怎么面向对象编程呢?
    封装、继承、多态
    JS面向对象
    作业day01
  • 原文地址:https://www.cnblogs.com/leavescy/p/14313291.html
Copyright © 2011-2022 走看看