首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏24k

    rabbitmq创建队列以及监听队列和起别名解决方案

    image.png 监听队列调用方式 @RabbitListener(queues =("#{rabbitmqConfig.queueNames(rabbitmqConfig.elemeterReport.get

    1.3K30发布于 2020-11-12
  • 来自专栏爪哇缪斯

    图详解阻塞队列——SynchronousQueue

    一、阻塞队列BlockingQueue概述 在线程池(ThreadPoolExecutor)的构造函数中,有一个代表阻塞队列的入参——BlockingQueue,它是一个接口,只要实现了这个接口的所有实现类 ,都可以作为阻塞队列而应用在线程池中。 本篇我们就针对SynchronousQueue这个阻塞队列进行源码解析。如下是阻塞队列的不同具体实现类: 二、为什么要解析SynchronousQueue呢? 那么阻塞队列的具体实现是什么,就会影响到这个任务的处理逻辑。而newCachedThreadPool采用的阻塞队列就是SynchronousQueue。 “很奇怪的队列”、“都不能叫队列”、“没有存储空间”、“必须结伴而行”……,what are you 弄啥咧?

    2K21编辑于 2023-05-10
  • 来自专栏程序猿的栖息地

    python多线程队列(BeautifulSoup网络爬虫)

    程序大概内容如下: 程序中设置两个队列分别为queue负责存放网址,out_queue负责存放网页的源代码。 ThreadUrl线程负责将队列queue中网址的源代码urlopen,存放到out_queue队列中。 "http://apple.com", "http://ibm.com","http://www.amazon.cn"] queue = Queue.Queue()#存放网址的队列 ]) self.out_queue.task_done() start = time.time() def main(): for i in range(5) i in range(5): dt = DatamineThread(out_queue)#线程任务就是从源代码中解析出<title>标签内的内容 dt.setDaemon

    49510编辑于 2022-04-29
  • 来自专栏艳艳代码杂货店

    python多线程队列(BeautifulSoup网络爬虫)

    程序大概内容如下: 程序中设置两个队列分别为queue负责存放网址,out_queue负责存放网页的源代码。 ThreadUrl线程负责将队列queue中网址的源代码urlopen,存放到out_queue队列中。 out_queue = Queue.Queue()#存放网址页面的队列 class ThreadUrl(threading.Thread): def __init__(self, self.out_queue.task_done() start = time.time() def main(): for i in range(5) for i in range(5): dt = DatamineThread(out_queue)#线程任务就是从源代码中解析出<title>标签内的内容 dt.setDaemon

    60430发布于 2021-11-01
  • 来自专栏代码伴一生

    python多线程队列(BeautifulSoup网络爬虫)

    程序大概内容如下: 程序中设置两个队列分别为queue负责存放网址,out_queue负责存放网页的源代码。 ThreadUrl线程负责将队列queue中网址的源代码urlopen,存放到out_queue队列中。 out_queue = Queue.Queue()#存放网址页面的队列 class ThreadUrl(threading.Thread): def __init__(self, self.out_queue.task_done() start = time.time() def main(): for i in range(5) for i in range(5): dt = DatamineThread(out_queue)#线程任务就是从源代码中解析出<title>标签内的内容 dt.setDaemon

    42920发布于 2021-11-01
  • 来自专栏皮振伟的专栏

    网卡队列对vm exit的影响

    分析: 1,网卡队列 enp130s0f0是Intel Corporation Ethernet Controller 10-Gigabit X540-AT2网卡,一块物理网卡使用了12个msi类型的 如果在CPU小于64的时候,会选择CPU数量的列数目,也就意味着每个CPU都会产生external irq。

    2.5K60发布于 2018-04-09
  • 来自专栏开源技术小栈

    TP5系列 | Queue消息队列

    ThinkPHP5 Queue消息队列 优点 1、Queue内置了 Redis,Database,Topthink ,Sync这四种驱动,本文使用Redis驱动 2、Queue消息队列适用于大并发或者返回结果 release(2); //$delay为延迟时间,延迟2S后继续执行 } elseif ($attempts == 2) { $job->release(5) ; // 延迟5S后继续执行 } } } /** * @Desc: 任务执行失败后自动执行方法 * @param $data JM16vvjMylfJDnOpldJaHda8xMwuYYzP\",\"attempts\":1}" 127.0.0.1:6379> 命令行挂起守护进程执行 /usr/bin/php /var/www/tp5/ 命令行挂起守护进程执行 nohup /usr/bin/php /var/www/tp5/think queue:work --daemon --queue testQueue --memory 256

    4.8K52发布于 2019-08-06
  • 来自专栏光城(guangcity)

    如何实现一个线程安全生产消费者队列

    如何实现一个线程安全生产消费者队列? 大家好,我是光城,在内容之前,举一个非常有趣的例子,如何实现一个线程安全的生产消费者对列呢? 如果让你手撕一个,可以写出来吗?里面有哪些细节? 引入之前,我们需要先写一个线程安全的队列,然后才能写出一个生产消费。 所以,第一个部分先写一个线程安全的队列,不考虑生产消费者情况。 如果是这么简单,我就不必赘述这么多了,之前在面试的时候也遇到过这么一个问题:面试官问我,如何保证empty线程安全,如何保证队列线程安全?等等,这不就是这里的问题嘛,如何写一个线程安全的队列? false; } fronted_value = q_.front(); return true; } 此时,我们的queue的front、pop都是线程安全的,但是问题又来了,如何实现生产消费呢 notify_one(); 对于生产者,在消费的时候,例如使用了pop即可,那么需要进行等待: while (q_.empty()) { cv_.wait(lock); } 至此,我们便得到了一个线程安全且支持生产消费的队列

    37110编辑于 2024-05-17
  • 来自专栏又见苍岚

    Python CUDA 编程 - 5 -

    当我们处理千万级别的数据,整个大任务无法被GPU一次执行,所有的计算任务需要放在一个队列中,排队顺序执行。CUDA将放入队列顺序执行的一系列操作称为流(Stream)。 流 以向量加法为例,上图中第一行的Stream 0部分是我们之前的逻辑,没有使用流技术,程序的三大步骤是顺序执行的: 先从主机拷贝初始化数据到设备(Host To Device); 在设备上执行核函数 将程序改为流后,每次只计算一小部分,流水线并发执行,会得到非常大的性能提升。 规则 默认情况下,CUDA使用0号流,又称默认流。不使用流时,所有任务都在默认流中顺序执行,效率较低。 在使用流之前,必须先了解流的一些规则: 给定流内的所有操作会按序执行。 非默认流之间的不同操作,无法保证其执行顺序。 number_of_streams = 5 # 每个流处理的数据量为原来的 1/5 # 符号//得到一个整数结果 segment_size = n // number_of_streams

    1.4K30编辑于 2022-08-04
  • 来自专栏运维开发王义杰

    Go并发设计:RabbitMQ队列消费者模式

    在处理大规模的消息流时,一个常见的场景是从多个RabbitMQ队列中获取并处理消息。 在这篇文章中,我们将讨论如何使用Go并发地从30个不同的RabbitMQ队列中接收消息,并为每个消息类型设计特定的处理程序。 接下来,我们需要并发地从多个RabbitMQ队列中接收消息。 ("Failed to shut down consumer cleanly: %v", err) } } }() select {} } 这样,我们就可以同时处理多个队列的消息了 handler.Handle(message) } else { // handle the error } } 我们的设计有几个优点: 使用Go协程可以让我们并发地处理多个队列的消息

    1.3K10编辑于 2023-08-10
  • 来自专栏crmeb

    thinkphp5的消息队列详细教程

    消息队列的概念、原理和场景 在高并发的时候,程序往往无法做到及时的处理。我们引入一个中间的系统,来进行分流和减压。 所以从本质上讲:消息队列就是一个队列结构的中间件。 1、队列结构的中间件 2、消息放入后,不必立即处理 3、由订阅者/消费者按顺序处理 也就是说:当遇到一个比较大或者耗时比较长的环节的时候,而同时你的业务又不需要立即知道这个环节的结果,使用消息队列是好的选择 知识付费的拼团功能使用的就是消息队列功能;把每个拼团订单都储存在消息队列中,拼团完成或拼团结束就可以自动处理这个订单。 application\index\controller\PushJob /*** 一个使用了队列的 action*/ public static function actionWithDoPinkJob $jobHandlerClassName  = 'app\index\job\PullDoPink';         // 2.当前任务归属的队列名称,如果为新队列,会自动创建         $jobQueueName

    1.7K20编辑于 2022-05-05
  • Yarn调度器及生产环境如何使用队列

    ,先进先出,生产环境不会用; 容量调度器:支持队列,保证先进入的任务有限执行; 公平调度器:支持队列,保证每个任务公平享有队列资源,资源不够时可以按照缺额分配。 (4)在生产环境怎么创建队列? 调度器默认就1个default队列,不能满足生产要求; 按照框架:hive/spark/flink每个框架的任务方队指定的队列(企业用的不是特别) 按照业务模块:登录注册、购物车、下单、业务部门1 、业务部门2 创建队列的好处? (2)实现任务的降级使用,特殊时期保证重要的任务队列资源充足。 业务部门1(重要)=》业务部门2(比较重要)=》下单(一般)=》购物车(一般)=》登录注册(次要)

    11610编辑于 2025-12-23
  • 来自专栏算法之名

    RabbitMQ使用多路由,队列来破除流控

    流控机制是我们在使用RabbitMQ最头疼的问题,一旦并发激增时,消费者消费队列消息就像滴水一样慢。 现在我们下单后,需要给通知中心发送消息,让通知中心通知服务商收取订单,并确认提供服务。 pre = DateUtils.format(new Date(), DateUtils.pattern9); return pre + flow; } } 其中我们定义了这么一组队列名 ,交换机,和路由 public interface OwnerCarCenterMq { /** * 队列名 */ String ORDER_QUEUE = "order /** * 服务添加routing key */ String ROUTING_KEY_ORDER = "post.order"; } 为了避免流控,我们定义了10个队列 " + 3, OwnerCarCenterMq.ORDER_QUEUE + "_" + 4, OwnerCarCenterMq.ORDER_QUEUE + "_" + 5,

    1.3K20发布于 2019-09-08
  • 来自专栏业余草

    消息队列常见的 5 个应用场景

    假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面。 秒杀业务根据消息队列中的请求信息,再做后续处理。 日志采集客户端,负责日志数据采集,定时写受写入Kafka队列;Kafka消息队列,负责日志数据的接收,存储和转发;日志处理应用:订阅并消费kafka队列中的日志数据。 5、消息通讯 消息通讯是指,消息队列一般都内置了高效的通信机制,因此也可以用在纯的消息通讯。比如实现点对点消息队列,或者聊天室等。 点对点通讯: ? 客户端A和客户端B使用同一队列,进行消息通讯。 (消息队列返回消息接收成功状态后,应用再返回,这样保障消息的完整性); 扩展流程(发短信,配送处理)订阅队列消息。 比如主数据写入数据库,扩展应用根据消息队列,并结合数据库方式实现基于消息队列的后续处理; 2、日志收集系统 ?

    2.4K20发布于 2019-08-15
  • 来自专栏ytao

    Redis5新特性Streams作消息队列

    前言 Redis 5 新特性中,Streams 数据结构的引入,可以说它是在本次迭代中最大特性。 它使本次 5.x 版本迭代中,Redis 作为消息队列使用时,得到更完善,更强大的原生支持,其中尤为明显的是持久化消息队列。 XADD person MAXLEN 5 * name ytao des https://ytao.top 这样就指定该了 Streams 中的容量为 5 条消息。 总结 上面对 Streams 常用 API 进行了分析,我们可以感受到 Redis 在消息队列支持的道路上,也越来越强大。 如果使用过它的 PUB/SUB 功能的话,就会感受到 5.x 迭代正是将你的一些痛点进行了优化。 关注【ytao】,更多原创好文

    84520发布于 2020-06-04
  • 来自专栏码匠的流水账

    聊聊rocketmq5的顺序消息队列选择

    序本文主要研究一下rocketmq5的顺序消息的队列选择SendMessageActivityproxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/ traffic among tasks, * you can decrease the number of tasks from 15 and 10, killing off the final 5 return candidate; } } }guava的consistentHash使用LinearCongruentialGenerator来生成double小结rocketmq5的消息消息的队列选择是在

    26400编辑于 2024-08-09
  • 来自专栏刷题笔记

    2-5 修理牧场 (35 分)【优先队列

    例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。 如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费为35(大于32)。 请编写程序帮助农夫计算将木头锯成N块的最少花费。 输入样例: 8 4 5 1 2 1 3 1 1 输出样例: 49 PAT一道特别好的优先队列的题目,简洁却藏着知识点。 哈夫曼树的非叶子节点之和,贪心算法 每次让最小的两节结合在一起变成一个大节点。 刚刚好适合使用优先队列。 priority_queue 优先队列,其底层是用堆来实现的。在优先队列中,队首元素一定是当前队列中优先级最高的那一个。

    1K10发布于 2020-06-23
  • 来自专栏拭心的安卓进阶之路

    并发编程5:Java 阻塞队列源码分析(下)

    七种阻塞队列的后四种 DelayQueue DelayQueue 是一个支持延时获取元素的、无界阻塞队列。 双向的作用是:可以从队列两端插入和移除元素。多了一个操作队列的方向,在多线程同时入队时,可以减少一半的竞争。 7 种阻塞队列的特点 这篇文章介绍的 4 种加上上一篇 细说并发4:Java 阻塞队列源码分析(上) 中 3 种,总共 7 种阻塞队列,这么队列看的眼都花了。 接口 CPU 自旋等待消费者取走元素,自旋一定次数后结束 LinkedBlockingDeque 由双向链表组成的、双向阻塞队列 可以从队列两端插入和移除元素 多了一个操作队列的方向,在多线程同时入队时 我们结合源码和《Java 并发编程的艺术》相关章节分两篇文章介绍了 Java 中的阻塞队列,了解了 7 种阻塞队列的大致源码实现,后面遇到需要使用阻塞队列时心里应该有些底了。

    1.2K60发布于 2018-01-05
  • 来自专栏钱塘小甲子的博客

    pyalgotrade教程5--标的策略

    既然是标的策略,那么肯定有多个csv的add,其实逻辑是很简单,就直接上demo吧,反正很好理解。 self, bars): # 1.我们弄一个简单的策略来假装一下 day = bars.getDateTime().date().day if day == 5: = sharpe.SharpeRatio() myStrategy.attachAnalyzer(sharpeRatioAnalyzer) # 4.运行策略 myStrategy.run() # 5.

    1.1K30发布于 2019-01-28
  • 来自专栏仙士可博客

    使用easyswoole开发多进程协程队列式爬虫

    例如: 1:分析页面1,假设页面1有5个待爬取页面链接 2:分析页面1结果,存储 3:分析页面1的第一个结果待爬取页面2,页面2有5个待爬取页面链接 4:分析页面2的结果,存储 5:分析页面1的第二个待爬取页面 3,页面3有5个待爬取页面链接。。。。。。 这样会造成代码的难以控制,不好维护待爬取页面,我们可以使用队列的形式进行处理 1:初始页面存入分析队列 2:分析初始页面1,获取5个待爬取页面链接,存入分析队列 3:分析页面1的结果,存入结果队列 4: 分析队列出列页面2,获取5个待爬取页面链接,存入分析队列 5:分析页面2的结果,存入结果队列 使用队列的情况下,逻辑将会非常的清晰,只需要每次将分析的页面出入队列,然后取出继续分析即可 同样,结果队列只需要新增一个结果消费进程  * User: tioncico  * Date: 19-6-16  * Time: 下午5:35  */ include ".

    1.9K20发布于 2019-12-19
领券