轮询机制的介绍

2023-05-16

        轮询是一种CPU决策如何提供周边设备服务的方式,又称“程控输入输出”(Programmed I/O)。是由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
轮询与长轮询
        轮询:简单来讲就是客户端定时去请求服务端,是客户端主动请求来促使数据更新。
长轮询:简单来讲就是客户端请求服务端,但是服务端并不是即时返回,而是当有内容更新的时候才返回内容给客户端,从流程上讲,可以理解为服务器向客户端推送内容;

两者之间的区别

轮询:

        1、大量耗费服务器内存和宽带资源,因为不停的请求服务器,很多时候 并没有新的数据更新,因此绝大部分请求都是无效请求
        2、数据不一定是实时更新,要看设定的请求间隔,基本会有延迟。

长轮询:
        1、解决了轮询的两个大问题,数据实时更新;
        2、唯一的缺点是服务器在挂起的时候比较耗内存。

        轮询机制是用来解决服务器压力过大的问题的。如果保持多个长连接,服务器压力会过大,因此。专门建立一个轮询请求的接口,里面只保留一个任务id,只需要发送任务id,就可以获取当前任务的情况。如果返回了结果,轮询结束,没有返回则等待一会儿,继续发送请求。  
        轮询不应该直接暴露出来,应该写在接口里面。比如说。请求一个列表,列表接口里面再调用轮询接口。 列表接口发送请求,返回任务id,2秒后,根据任务id发送轮询接口请求,返回结果为无。。继续等待,4秒后,继续发送轮序请求,请求若返回结果,上抛到列表接口结果,列表接口结果继续上抛,请求结束 。

1.命令请求—–服务器响应已收到请求—-返回任务id

2.更新任务id,发起轮询请求—1轮 – 2秒—–返回结果非任务id情况结束请求—-或者服务器唯一标识 
3.更新任务id,发起轮询请求 —2轮 – 4秒 —–返回结果非任务id情况结束请求—-或者服务器唯一标识 
4.更新任务id,发起轮询请求 —3轮 —6秒—–返回结果非任务id情况结束请求—-或者服务器唯一标识 
5.更新任务id,发起轮询请求 —3轮 —8秒 —–返回结果非非任务id情况结束请求—-或者服务器唯一标识

6,结束任务——————过滤掉之后返回的任何结果。。都认为是失败

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

轮询机制的介绍 的相关文章

随机推荐

  • UDP传输图片(分包)

    前提 xff1a 需要了解QUdp的简单通信 xff0c 比如收发个字符串 QP ixmap图片类 xff0c 以此类来加载图片 Q B uffer和Q B yteArray来记录数据 memcpy函数的用法 分包概念 xff1a 举个例子
  • 结构型设计模式(七种)

    3 结构型设计模式 结构型模式描述如何将类或对象按某种布局组成更大的结构 它分为类结构型模式和对象结构型模式 xff0c 前者采用继承机制来组织接口和类 xff0c 后者采用组合或聚合组合对象 由于组合关系或聚合关系比较继承关系耦合度低 x
  • IDEA+Log4j2 设置控制台打印彩色日志

    在Log4j 2 10以前的版本 xff0c pattern中配置 highlight属性是可以正常打印彩色日志的 例如 xff1a pattern 34 d yyyy MM dd HH mm ss SSS highlight 5level
  • weex打包安卓艰苦之路

    weex打包安卓 一 配置安卓环境 下载安卓SDK配置ANDROID HOME配置 ANDROID HOME tools android h 检查是否配置成功 二 weex的安装使用 一 weex简介以及开发前提 1 简介 官网的解释为We
  • docker命令

    Docker命令详解 语法 docker run OPTIONS IMAGE COMMAND ARG Usage Run a command in a new container 中文意思为 xff1a 通过run命令创建一个新的容器 xf
  • PX4 mixer load

    mixer load dev pwm output0 fs microsd mixer ttt mix 启动一个自定义的mixer 系统默认从 etc mixers加载mixer 如果在 fs microsd etc mixers有相同名称
  • Bean三级缓存

    一 核心步骤 提前引用进行动态代理 后置处理器进行动态代理 二 具体步骤 1 获取bean AbstractBeanFactory doGetBean 2 第一次去单例池查询bean 最终调用 xff1a DefaultSingletonB
  • MinIO Client客户端使用

    安装 文档地址 xff1a https docs min io 基本上MinIO服务器和客户端支持在很多系统上安装 xff0c 比如Windows macOS等 xff0c 这里主要说Linux系统 minio安装 span class t
  • Security+Thymeleaf整合

    文章目录 1 版本介绍2 演示demo3 常见使用表达式Using the expression utility objectsUsing the attributes 官方地址 1 版本介绍 2 演示demo html界面 span cl
  • java正则的使用

    java util regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包 它包括两个类 xff1a Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式 Matcher 一个
  • cas服务端动态servers

    一 什么是servers cas的分为服务端和客户端 xff0c 如果客户端要使用cas需要把自己的域名或ip注册到cas服务端才可以使用 默认的servers为静态的 src main resources services HTTPSan
  • cas 配置相关

    默认配置 span class token comment span span class token comment CAS Cloud Bus Configuration span span class token comment sp
  • Elasticsearch分词器

    内置分词器 中文分词器 这篇博客主要讲 xff1a 分词器概念 ES内置分词器 ES中文分词器 一 分词器概念 1 Analysis 和 Analyzer Analysis xff1a 文本分析是把全文本转换一系列单词 term token
  • java中的引用

    背景 最近在研究ThreadLocal中发现最终存储的ThreadLocalMap中的key为弱引用 xff0c 因此来分析下使用弱引用的原因 实验 引用链为 list 61 gt gt person1 因此在GC的时候 list还强引用三
  • charles

    Charles 的简介如何安装 Charles将 Charles 设置成系统代理Charles 主界面介绍过滤网络请求截取 iPhone 上的网络封包截取 Https 通讯信息模拟慢速网络修改网络请求内容给服务器做压力测试修改服务器返回内容
  • CAN通信

    CAN通信控制器通过两根线上的电位差来判断总线电平 xff0c 是ISO国际标准化的串行通信协议 总线电平分为显性电平和隐形电平 xff0c 二者必居其一 发送方通过总线上电平的变化将信息发送给接收方 CAN通讯是半双工的 xff0c 收发
  • maddpg 复现过程中遇到的问题

    最近在复现论文Multi Agent Actor Critic for Mixed Cooperative Competitive Environments https github com openai multiagent partic
  • 【解决】VSCode在windows下不能打开标准头文件

    鼠标放到标准头文件上 xff0c VSCode提示一下错误 xff1a include errors detected Please update your includePath IntelliSense features for thi
  • SPI通信方式总结

    SPI xff08 Serial Peripheral interface xff09 是一种同步串行传输规范 xff0c 也是单片机外设芯片串行外设扩展接口 xff0c 该接口是一种高速 xff0c 全双工 xff0c 同步的通信总线 x
  • 轮询机制的介绍

    轮询是一种CPU决策如何提供周边设备服务的方式 xff0c 又称 程控输入输出 xff08 Programmed I O xff09 是由CPU定时发出询问 xff0c 依序询问每一个周边设备是否需要其服务 xff0c 有即给予服务 xff