草庐IT

event-queue

全部标签

node.js - RabbitMQ/AMQP : single queue, 同一消息的多个消费者?

我刚开始使用RabbitMQ和AMQP。我有一个消息队列我有多个消费者,我想用相同的信息做不同的事情。大多数RabbitMQ文档似乎都集中在循环,即单个消费者使用单个消息,负载在每个消费者之间分散。这确实是我目睹的行为。一个例子:生产者有一个队列,每2秒发送一次消息:varamqp=require('amqp');varconnection=amqp.createConnection({host:"localhost",port:5672});varcount=1;connection.on('ready',function(){varsendMessage=function(conn

Python:Queue.Empty 异常处理

在与某人就Python中的异常处理(由处理队列对象引发)进行了简短的辩论之后,我想我应该把它扔在那里...方法一:importQueueq=Queue.Queue()try:task=q.get(False)#Opt1:Handletaskhereandcallq.task_done()exceptQueue.Empty:#Handleemptyqueueherepass#Opt2:Handletaskhereandcallq.task_done()方法二:importQueueq=Queue.Queue()ifq.empty():#Handleemptyqueuehereelse:t

python - 无法访问 Queue.Empty : "AttributeError: ' function' object has no attribute 'Empty' "

由于某种原因,我无法访问Queue.Empty异常-我在这里做错了什么?frommultiprocessingimportProcess,Queue#...try:action=action_queue.get(False)print"Action:"+actionexceptQueue.Empty:pass堆栈跟踪:Traceback(mostrecentcalllast):File"C:\ProgramFiles\Python27\lib\multiprocessing\process.py",line258,in_bootstrapself.run()File"C:\Progra

python - 扭曲的 XmlStream : How to connect to events?

我想实现一个Twisted服务器,它需要XML请求并发送XML响应作为返回:somerequestcontentsomeresponsecontentotherrequestcontentotherresponsecontent我创建了一个Twisted客户端和服务器before它交换了简单的字符串并试图将其扩展到使用XML,但我似乎无法弄清楚如何正确设置它。client.py:#!/usr/bin/envpython#encoding:utf-8fromtwisted.internetimportreactorfromtwisted.internet.endpointsimportT

python - 将 multiprocessing.Queue 转储到列表中

我希望将multiprocessing.Queue转储到列表中。对于该任务,我编写了以下函数:importQueuedefdump_queue(queue):"""Emptiesallpendingitemsinaqueueandreturnstheminalist."""result=[]#STARTDEBUGCODEinitial_size=queue.qsize()print("Queuehas%sitemsinitially."%initial_size)#ENDDEBUGCODEwhileTrue:try:thing=queue.get(block=False)result.

python - 运行时错误 : This event loop is already running in python

我认为我收到此错误是因为我的代码调用了两次asyncio.get_event_loop().run_until_complete(foo())。一次来自foo(),第二次来自foo()调用的函数。我的问题是:为什么这会是一个问题?为什么我还要关心这个循环是否正在运行?对这个问题进行了编辑,我认为它掩盖了它(有些人喜欢在不理解规则的情况下遵守规则,因此从标题中删除了“非法”字样)。不幸的是,这会造成困惑。我对出现错误这一事实并不感到惊讶。我可以追溯到asyncio源代码,发现这个库的作者想要这样做,这并不神秘。令人费解的部分是库的作者认为在循环已经运行时要求从事件循环运行某些函数到完成是

python -/dev/input/event 的格式*

/dev/input/event*中的字符设备的“格式”是什么?换句话说,如何解码字符流?非常感谢您提供Python示例。 最佳答案 一个简单的原始阅读器可以使用:#!/usr/bin/pythonimportstructimporttimeimportsysinfile_path="/dev/input/event"+(sys.argv[1]iflen(sys.argv)>1else"0")"""FORMATrepresentstheformatusedbylinuxkernelinputeventstructSeehttps:/

python - 如何在 Python 中迭代 Queue.Queue 项目?

有谁知道迭代Queue.Queue从队列中删除它们的元素的Pythonic方式。我有一个生产者/消费者类型的程序,其中要处理的项目通过使用Queue.Queue传递,并且我希望能够打印剩余的项目是什么。有什么想法吗? 最佳答案 您可以遍历底层数据存储的副本:foreleminlist(q.queue)尽管这绕过了Queue对象的锁定,但列表副本是一个原子操作,它应该可以正常工作。如果您想保留锁,为什么不将所有任务从队列中拉出,制作您的列表副本,然后将它们放回原处。mycopy=[]whileTrue:try:elem=q.get(b

python - 相当于 asyncio.Queues 与 worker "threads"

我试图弄清楚如何移植线程程序以使用asyncio.我有很多代码可以同步几个标准库Queues,基本上是这样的:importqueue,random,threading,timeq=queue.Queue()defproduce():whileTrue:time.sleep(0.5+random.random())#sleepfor.5-1.5secondsq.put(random.random())defconsume():whileTrue:value=q.get(block=True)print("Consumed",value)threading.Thread(target=pr

python - threading.Condition 与 threading.Event

我还没有找到threading中Condition和Event类之间区别的清晰解释模块。是否有一个明确的用例,其中一个比另一个更有帮助?我能找到的所有示例都使用生产者-消费者模型作为示例,其中queue.Queue将是更直接的解决方案。 最佳答案 简单地说,当线程有兴趣等待某事变为真时,您使用条件,一旦变为真,就可以独占访问某些共享资源。而当线程只是对等待某事变为真的感兴趣时,您会使用事件。本质上,Condition是一个抽象的Event+Lock,但是当您考虑到在同一个底层锁上可以有多个不同的条件时,它会变得更有趣。因此,您可以有