标签: pool

从单个 FTP 服务器进行多线程/异步下载

我需要从单个服务器中的单个文件夹下载许多文件,因此我正在寻找一种更快的方法。经过一番阅读后,似乎多线程或异步方法都可以工作,但我似乎无法让这两种方法都工作。

我正在使用的异步方法如下。这可行,即没有错误,但它一次只下载一个文件,因此不会提高速度。有没有办法修改它以便提高速度?

async def get_file(self):
    async with aioftp.ClientSession(self.host, self.port, self.login, self.password) as client:
        async for path, info in client.list(recursive=True):
            if info["type"] == "file":
                await client.download(path, destination=self.dest_dir,write_into=True, block_size=self.block_size)


def async_update(self):
  loop = asyncio.get_event_loop()
  loop.run_until_complete(self.get_file())
  loop.close()
Run Code Online (Sandbox Code Playgroud)

然后我尝试在多处理中使用简单的 Pool() 函数,如下所示:

def simple_fetch(self,file)     
    file = open(self.dest_dir+filename, 'wb')
    ftp.retrbinary('RETR ' + filename, file.write, 8192*(2^3)) #, 8192)
    file.close()

def multi_fetch(self):
    pool = Pool()
    pool.map(self.simple_fetch,self.update_files)
    pool.close()
    pool.join()
Run Code Online (Sandbox Code Playgroud)

但这会失败并出现错误。我一回到服务器就会更新该错误。

python ftp multithreading asynchronous pool

3
推荐指数
1
解决办法
3898
查看次数

python中的多处理不会停止运行

我从他们的网站本身尝试了一个简单的 python 多处理示例,但它没有提供任何输入。它显示为正在运行,我无法在 jupyter 笔记本中停止它。

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    p = Pool(5)
    print(p.map(f, [1, 2, 3]))
Run Code Online (Sandbox Code Playgroud)

其他多处理示例也是如此。它不会给出任何错误或超时或任何东西。就像陷入无限循环或死锁一样。

python parallel-processing pool process multiprocessing

3
推荐指数
1
解决办法
4092
查看次数

如何在 AzureDevOps 中使用旧名称重新创建代理池?

我在 AzureDevOps 中创建新的代理池时遇到问题。

我想要做的是删除一台旧的自托管主机并部署一台新主机。然而,旧主机使用的代理池和新主机使用的代理池是由同事创建的。这导致我无法删除现有的注册代理,导致在新主机部署期间发生冲突。为了解决此问题,我能够删除代理池。

现在,当我想创建一个同名的新池时,我收到错误消息

“未找到标识符为 76 的代理池”。

有没有人看到过这个错误消息并且或者知道我可以采取什么措施?

预期: 创建一个与旧池同名的新代理池。

实际: 我收到错误消息“未找到标识符为 76 的代理池”。

代理创建图像

错误消息图像

pool agent azure-devops azure-pipelines

3
推荐指数
1
解决办法
2005
查看次数

缓存/池/缓存池之间的区别/准则

我正在做一些设计(最初是为Java设计的)(但将来可能会扩展到.NET吗?),我对术语“缓存”和“池”感到困惑。

据我所知,主要区别在于它们包含什么?

什么时候应该使用哪个准则?

那么,在许多文章中提到的“缓存池”又是什么呢?

caching pool

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

Java连接池实现

如果可以实现它,你能看看我的连接池吗?

public class ConnectionPool {
    private static List<DBConnection> pool = null;
    private static int available = 0;
    private ConnectionPool() {}

    public static DBConnection getConnection() {
        if (pool == null) {
             pool = new ArrayList<DBConnection>();
             for (int i = 0; i < 3; i++) {
                 try {
                    pool.add(new DBConnection());
                    available++;
                } catch (SQLException e) {
                    e.printStackTrace();
                }
             }
        }
        if (pool.size() > 0) {
            available--;
            return pool.remove(available);
        } else {
            return null;
        }
    }

    public static void returnConnection(DBConnection c) {
        pool.add(c); …
Run Code Online (Sandbox Code Playgroud)

java database connection pool object

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

python多处理 - 初始化/传递数据库连接以跨进程使用的最佳方法

我在使用Python多处理包中的pool.map传递数据库连接对象或游标对象时遇到了一些困难.基本上,我想创建一个工作池,每个工作池都有自己的状态和数据库连接,这样它们就可以并行执行查询.

我尝试过这些方法,但是我在python中得到了一个picklingerror -

游泳池地图与2个arugements

使用Initializer设置多进程池

第二个链接正是我需要做的,这意味着我希望每个进程在启动时打开数据库连接,然后使用该连接来处理传入的数据/ args.

这是我的代码.

import multiprocessing as mp

def process_data((id,db)):
  print 'in processdata'
  cursor = db.cursor()
  query = ....
  #cursor.execute(query)
  #....
  .....
  .....
  return row

`if __name__ == '__main__':

  db = getConnection() 
  cursor = db.cursor() 
  print 'Initialised db connection and cursor'
  inputs = [1,2,3,4,5]
  pool = mp.Pool(processes=2)
  result_list = pool.map(process_data,zip(inputs,repeat(db)))
  #print result_list
  pool.close()
  pool.join() 
Run Code Online (Sandbox Code Playgroud)

`

这会导致以下错误 -

`Exception in thread Thread-1:
  Traceback (most recent call last):
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.6/threading.py", line …
Run Code Online (Sandbox Code Playgroud)

python database pool initializer multiprocessing

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

多?多线程?池?队列?暴力强迫

这是一个常识性问题,很快就会变成一个项目.我有一个脚本试图用已知的盐强制sha1强制sha1.无论如何,在本申请中,盐是已知的.无论如何,脚本工作正常,它是一个python脚本.当我运行它时,它最多可以获得16个核心.我想利用所有16​​个内核进行蛮力攻击!我用脚本搞砸了一下,并且能够在这里使用一个例子来利用多个核心,但它们并没有被使用.

http://forum.openopt.org/viewtopic.php?id=51

这个parrelization的东西对我来说是新的,我不知道如何在python中处理它(更不用说任何脚本语言).

TL; DR,python中使用所有可用于哈希的强大核心的最佳方法是什么,比如MD5?

基本上我现在拥有的是......(请注意释义代码)

from multiprocessing imports Pools

def prog()
    generate hash_attempt
    compare it to target
jobs = []
po = Pool()
for stuff in things:
    po.apply_sync(prog())
Run Code Online (Sandbox Code Playgroud)

这可行,但我认为我说,它没有充分利用所有核心,然后有时它只是随机杀死.它将停止执行,我调用脚本的终端将返回到它的提示符,在它上面,它会说"已杀死".奇怪的东西.

万分感谢!

python hash multithreading pool multiprocessing

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

产生比在gevent池中更多的线程

据我所知,gevent中池的想法是随时限制并发请求的总数,数据库或API等.

假设我有这样的代码,我产生的greenlets比我有更多的greenlets Pool:

import gevent.pool

pool = gevent.pool.Pool(50)
jobs = []
for number in xrange(300):
    jobs.append(pool.spawn(do_something, number))

total_result = [x.get() for x in jobs]
Run Code Online (Sandbox Code Playgroud)

尝试生成第51个请求时的实际行为是什么?第51个请求何时处理?

pool spawn gevent

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

哪个erlang的游泳池适合?

我希望这个池有一个能力(或多个选项),当这些池空闲超时时,它可以自动减少它的工作量.

我已经阅读了doc的文档,poolboy并且worker_pool发现只有最大工人数量选项,但没有选项可以何时减少它.

它是否存在或如何修改它们?

erlang pool

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

Python多重处理apply_async“向左断言&gt; 0” AssertionError

我正在尝试在Pool中异步加载numpy文件:

self.pool = Pool(2, maxtasksperchild = 1)
...
nextPackage = self.pool.apply_async(loadPackages, (...))
for fi in np.arange(len(files)):
    packages = nextPackage.get(timeout=30)
    # preload the next package asynchronously. It will be available
    # by the time it is required.
    nextPackage = self.pool.apply_async(loadPackages, (...))
Run Code Online (Sandbox Code Playgroud)

方法“ loadPackages”:

def loadPackages(... (2 strings & 2 ints) ...):
    print("This isn't printed!')
    packages = {
        "TRUE": np.load(gzip.GzipFile(path1, "r")),
        "FALSE": np.load(gzip.GzipFile(path2, "r"))
    }
    return packages
Run Code Online (Sandbox Code Playgroud)

在加载第一个“程序包”之前,就会发生以下错误:

线程Thread-8中的异常:回溯(最近一次调用为last):
_bootstrap_inner self.run()中的第914行“ C:\ Users \ roman \ Anaconda3 \ envs \ tsc1 \ …

python multithreading numpy pool python-3.x

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