Souleigh ✨ Souleigh ✨
4年前
为什么要用 setTimeout 模拟 setInterval ?
在JS事件循环之宏任务和微任务中讲到过,setInterval是一个宏任务。用多了你就会发现它并不是准确无误,极端情况下还会出现一些令人费解的问题。下面我们一一罗列..推入任务队列后的时间不准确定时器代码:setInterval(fn(), N);上面这句代码的意思其实是fn()将会在N秒之后被推入任务队列。所以,在setInterval
捉虫大师 捉虫大师
4年前
一种极致性能的缓冲队列
本文已收录https://github.com/lkxiaolou/lkxiaolou欢迎star。背景在多线程下的生产者消费者模型中,需求满足如下情况:对生产者生产投递数据的性能要求非常高多个生产者,单个(多个也可以,本文只介绍单个的情况)消费者当消费者跟不上生产者速度时,可容忍少部分数据丢失生产者是单条单条地生产数据举个日志采集的例子,日志在不同的
Easter79 Easter79
4年前
springboot~rabbitmq自己通过UI手动发布队列需要注意的地方
springboot里发布队列消息为了兼容性和可读性更好,我们一般使用json字符串做为数据载体。publicvoiddecreaseCallMonitor(CallMonitorInfocallMonitorInfo)throwsException{try{rabbitTe
Karen110 Karen110
4年前
手把手教你在Windows下设置分布式队列Celery的心跳轮询
/1前言/大家好,我是吴老板。用Celery官方的话来说,Celery是一个非常优秀的分布式队列,可应用于分布式共享中间队列和定时任务等等。/2 版本的差异/    Celery有很多个版本,各版本之间的差异可谓不小,比如最新的Celery6.0版本在稳定性远不如Celery4.0,所以在使用不同版本的时候,系统给到我们的反馈可能并不
Stella981 Stella981
4年前
JavaScript:再谈Tasks和Microtasks
JavaScript是单线程,也就是说JS的堆栈中只允许有一类任务在执行,不可以同时执行多类任务。在读js文件时,所有的同步任务是一条task,当然了,每一条task都是一个队列,按顺序执行。而如果在中途遇到了setTimeout这种异步任务,就会将它挂起,放到任务队列中去执行,等执行完毕后,如果有callback,就把callback推入到Tasks中去,
Wesley13 Wesley13
4年前
C++ 多线程编程总结
在开发C程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C程序时,总结起来可以从如下几点提高效率:并发异步缓存下面将我平常工作中遇到一些问题例举一二,其设计思想无非以上三点。1任务队列1.1   以生产者消费者模型设计任务队列      生产者消费者模型是人们非常熟
Wesley13 Wesley13
4年前
MQ之对比
activeMQ:高效、可扩展、稳定安全企业级消息通信rabbitMQ:分布式系统可靠、可扩展、功能丰富,内存式堆积,某些条件下触发换页动作将内存中消息换页到磁盘;支持多租户  不支持重试队列,二次封装延迟队列实现呢  拉模式,不回溯,支持消息追踪  多租户kafka:高吞吐量分布式发布订阅消息系统,可水平扩展,磁盘式堆积,冗余功能
Easter79 Easter79
4年前
Swoole2.0协程客户端连接池的实现
Swoole2.0官方默认的实例是短连接的,在请求处理完毕后就会切断redis或mysql的连接。实际项目可以使用连接池实现复用。实现原理也很简单,使用SplQueue,在请求到来时判断资源队列中是否有可用的连接,如果有直接拿来复用。如果没有就创建一个新的连接。在连接使用完毕后再讲它重新放回到队列,此连接就可以被其他协程复用。$count
Stella981 Stella981
4年前
RabbitMq学习(二)RabbitMQ的消息确认机制
一.为什么有消息确认机制在RabbitMq中,一个消息从产生到最终的消息接受,中间大致会有三个环节,首先是消息到达交换机、然后是消息通过交换机到达队列,最后消费者消费绑定的队列消息。 但是在这个过程中,如果出现网络或者系统的异常,就会导致消息不能被正常消费。如果不能正常消费消息,会造成两方面的问题。 1.1在服务端消息到
Stella981 Stella981
4年前
RabbitMQ之概念介绍(二)
简介:  MQ全称为MessageQueue,消息队列是一种应用程序间的通信方法。  其是消费者生产者模型的一个典型代表,一端往消息队列中不断写入消息,另一端不断读取/订阅消息。简单使用场景举例:  将项目中无需即时返回且耗时的操作提取出来,进行异步处理,大大降低了服务器的请求响应时间。  如:打印日志模块无需即时返回