小编The*_*ear的帖子

Python如何在类中进行多处理?

我有一个代码结构,如下所示:

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)

我似乎无法让它运行.我收到运行时错误" 在当前进程完成其自举阶段之前,已尝试启动新进程. "

如何让多个处理工作?如果我使用线程,它可以正常工作,但它和顺序一样慢...而且我也担心多次处理也会很慢,因为创建进程需要更长的时间?

任何好的提示?提前谢谢了.

python multiprocessing

15
推荐指数
3
解决办法
3万
查看次数

如何在python中做一个简单的Pika SelectConnection来发送消息?

我正在尝试将我的代码转换为通过 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 …

python rabbitmq pika

6
推荐指数
2
解决办法
3807
查看次数

如何在python中创建一个间隔函数调用线程的后台?

我正在尝试实现在后台运行的心跳调用.如何创建一个每隔30秒的间隔调用的线程调用,调用以下函数:

self.mqConn.heartbeat_tick()
Run Code Online (Sandbox Code Playgroud)

我怎么能阻止这个线程?

非常感谢.

python heartbeat

5
推荐指数
1
解决办法
6766
查看次数

如何在Python中查找特定日期所在的日期的排序列表?

我有一个排序的日期列表,我正在寻找一种方法来查找输入日期在该排序列表中的位置,但更具体地说是它的上限.

例如,如果在排序日期列表中定位它[0, 1, 2, 3, 4, 5],然后输入日期在位置3和4之间,我希望函数将位置4返回给我.

我可以使用预先制作的二分搜索等吗?或者我必须自己写吗?

python sorting date binary-search

2
推荐指数
1
解决办法
232
查看次数

Excel C#:如何从Range对象获取工作表/工作簿名称和地址?

我有一个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)

非常感谢.

c# excel

2
推荐指数
1
解决办法
1487
查看次数