我有一个代码结构,如下所示:
Class A:
def __init__(self):
processes = []
for i in range(1000):
p = Process(target=self.RunProcess, args=i)
processes.append[p]
# Start all processes
[x.start() for x in processes]
def RunProcess(self, i):
do something with i...
Run Code Online (Sandbox Code Playgroud)
主要脚本:
myA = A()
Run Code Online (Sandbox Code Playgroud)
我似乎无法让它运行.我收到运行时错误" 在当前进程完成其自举阶段之前,已尝试启动新进程. "
如何让多个处理工作?如果我使用线程,它可以正常工作,但它和顺序一样慢...而且我也担心多次处理也会很慢,因为创建进程需要更长的时间?
任何好的提示?提前谢谢了.
我正在尝试将我的代码转换为通过 Pika 发送 rabbitmq 消息。我在理解如何使用异步连接(例如 SelectConnection)发送简单消息时遇到了很多麻烦。
在我使用 amqp 库的旧代码中,我只是声明了一个这样的类:
import amqp as amqp
class MQ():
mqConn = None
channel = None
def __init__(self):
self.connect()
def connect(self):
if self.mqConn is None:
self.mqConn = amqp.Connection(host="localhost", userid="dev", password="dev", virtual_host="/", insist=False)
self.channel = self.mqConn.channel()
elif not self.mqConn.connected:
self.mqConn = amqp.Connection(host="localhost", userid="dev", password="dev", virtual_host="/", insist=False)
self.channel = self.mqConn.channel()
def sendMQ(self, message):
self.connect()
lMessage = amqp.Message(message)
self.channel.basic_publish(lMessage, exchange="DevMatrixE", routing_key="dev_matrix_q")
Run Code Online (Sandbox Code Playgroud)
然后在我的代码中的其他地方调用 sendMQ("this is my message"),然后代码继续。我不需要听确认等。
有人可以使用 pika 和 SelectConnection 编写一个简单的类,它也可以使用 sendMQ(“这是我的消息”)发送消息吗?我看过 pika 的例子,但我不知道如何绕过 ioloop 和 KeyboardInterrupt。我想我只是不确定如何让我的代码在没有所有这些 try/excepts …
我正在尝试实现在后台运行的心跳调用.如何创建一个每隔30秒的间隔调用的线程调用,调用以下函数:
self.mqConn.heartbeat_tick()
Run Code Online (Sandbox Code Playgroud)
我怎么能阻止这个线程?
非常感谢.
我有一个排序的日期列表,我正在寻找一种方法来查找输入日期在该排序列表中的位置,但更具体地说是它的上限.
例如,如果在排序日期列表中定位它[0, 1, 2, 3, 4, 5]
,然后输入日期在位置3和4之间,我希望函数将位置4返回给我.
我可以使用预先制作的二分搜索等吗?或者我必须自己写吗?
我有一个Excel.Application.SheetChange
事件,我注册到哪个传递更改的范围对象.
我试图从尽可能少的互操作调用中提取工作表名称,工作簿名称和地址.
有没有人有什么好主意?例如,如何获取范围的完整地址,然后进行一些字符串解析才能得到它?
这是代码snippit:
private void ws_change(Excel.Range target){
//Code to get target workbook name, worksheet name, and range address
}
Run Code Online (Sandbox Code Playgroud)
非常感谢.