限制多处理python中的进程数量

2024-04-19

我的要求是生成hundreds of HTTP POST requests per second。我正在使用它urllib2.

def send():
    req = urllib2.Request(url)
    req.add_data(data)
    response = urllib2.urlopen(req)

while datetime.datetime.now() <= ftime:
    p=Process(target=send, args=[])
    p.start()
    time.sleep(0.001)

问题是这段代码sometimes for some iterations抛出以下异常之一:

HTTP 503 Service Unavailable.
URLError: <urlopen error [Errno -2] Name or service not known>

我尝试过使用requests(HTTP for humans)以及,但我对该模块有一些代理问题。似乎requests即使目标计算机位于同一 LAN 内,也会向代理服务器发送 http 数据包。我不希望数据包发送到代理服务器。


限制并发连接数的最简单方法是使用线程池:

#!/usr/bin/env python
from itertools import izip, repeat
from multiprocessing.dummy import Pool # use threads for I/O bound tasks
from urllib2 import urlopen

def fetch(url_data):
    try:
        return url_data[0], urlopen(*url_data).read(), None
    except EnvironmentError as e:
        return url_data[0], None, str(e)

if __name__=="__main__":
    pool = Pool(20) # use 20 concurrent connections
    params = izip(urls, repeat(data)) # use the same data for all urls
    for url, content, error in pool.imap_unorderred(fetch, params):
        if error is None:
           print("done: %s: %d" % (url, len(content)))
        else:
           print("error: %s: %s" % (url, error))

503 Service Unavailable是服务器错误。它可能无法处理负载。

Name or service not known是一个dns错误。如果您需要提出很多要求;安装/启用本地缓存 dns 服务器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

限制多处理python中的进程数量 的相关文章

  • 如何避免使用全局变量?

    我使用全局变量 但我读到它们不是一个好的实践或Pythonic 我经常使用的函数会给出许多是 否变量 我需要在主函数中使用这些变量 例如 在不使用全局变量的情况下 如何编写以下代码 def secondary function global
  • python中unicode字符串到ascii字符串的近似转换

    不知道这是否微不足道 但我需要将 unicode 字符串转换为 ascii 字符串 并且我不希望周围有所有这些转义字符 我的意思是 是否有可能 近似 转换为一些非常相似的 ascii 字符 例如 Gavin O Connor 转换为 Gav
  • C++ 相当于 Python getattr

    在Python中 有一个名为getattr的函数 它看起来像这样 class MyObject def init self self xyz 4 obj MyObject getattr obj xyz 其中对 getattr 的调用将返回
  • 在Python中解析空选项

    我有一个应用程序 允许您将事件数据发送到自定义脚本 您只需布置命令行参数并指定什么事件数据与什么参数相匹配 问题是这里没有真正的灵活性 您制定的每个选项都将被使用 但并非每个选项都必须有数据 因此 当应用程序构建要发送到脚本的字符串时 某些
  • 如何在 for 循环中跳过一些迭代

    在 python 中 我通常简单地循环遍历范围 for i in range 100 do something 但现在我想跳过循环中的几个步骤 更具体地说 我想要类似的东西continue 10 这样它就会跳过整个循环并将计数器增加 10
  • Python中的键盘可中断阻塞队列

    It seems import Queue Queue Queue get timeout 10 键盘可中断 ctrl c 而 import Queue Queue Queue get 不是 我总是可以创建一个循环 import Queue
  • 为什么通过selenium切换到alert不稳定?

    为什么通过selenium切换到alert不稳定 例如 1 运行代码 一切顺利 一切都很顺利 但如果这段代码在几分钟内运行 那么可能会出现错误 例如 没有可以单击的元素 等等 2 在一个站点上有一个警报窗口 alert driver swi
  • 使用底图和Python在地图中绘制海洋

    我正在绘制此处提供的 netCDF 文件 https goo gl QyUI4J https goo gl QyUI4J Using the code below the map looks like this 然而 我希望海洋是白色的 更
  • 如何使用增量值向 Pyspark 中的 DataFrame 添加列?

    我有一个名为 df 的 DataFrame 如下所示 Atr1 Atr2 Atr3 A A A B A A C A A 我想向其中添加一个具有增量值的新列并获取以下更新的 DataFrame Atr1 Atr2 Atr3
  • 有没有办法在Python中调用子类定义的方法?

    The init 方法定义了创建类的实例时要执行的操作 创建子类时我可以做类似的事情吗 假设我有抽象类Entity class Entity def onsubclasscreation cls for var in cls annotat
  • 结束一天(日期时间)的最优雅的方式是什么?

    我目前正在编写一些报告代码 允许用户选择指定日期范围 它的工作方式 简化 是 用户 可选 指定年份 用户 可选 指定月份 用户 可选 指定一天 这是一个代码片段 以及描述我想要的内容的注释like to do from datetime i
  • Kivy:滚动缩放

    有没有办法在桌面 kivy 应用程序上放大图像 例如使用鼠标滚轮缩放 这里似乎讨论过 https github com kivy kivy issues 3563 https github com kivy kivy issues 3563
  • 分别计算男女宿舍

    我想要的结果是这样的 males 1990 Q1 value Q2 value Q3 Value Q4 Value females Q1 value Q2 value Q3 Value Q4 value 如果任何值不存在则默认值 0 imp
  • Mac OS 上的 pybluez 安装错误

    我尝试安装pybluez使用以下命令 pip install pybluez sudo easy install pybluez 但对于这两个命令我最终都会出错 环境 Mac OSX 10 9 1 Python 2 7 点日志 cc fno
  • Scrapy文件下载如何使用自定义文件名

    For my scrapy http doc scrapy org index html我目前正在使用的项目文件管道 https doc scrapy org en latest topics media pipeline html scr
  • 尝试输入字符串时出现名称错误[重复]

    这个问题在这里已经有答案了 import pickle import os import time class Person def init self number address self number number self addr
  • python字符串包含双引号字符

    我的输入字符串由字符组成 包括双引号和单引号 和 B SS JU PQ AD DDSFD ABD E J 但是 当我从文本文件打开上述输入并打印它时 第三行中的双引号 被打印为 xe2 x80 x9d 我的目标是进行简单的字符计数 B 2
  • jupyter run magic 将参数传递给笔记本

    当您在第一个 jupyter 笔记本 first ipynb 中时 您可以执行第二个 但如何传递参数呢 假设第二个有以下内容 xx 10 您可以从第一个调用第二个 如下所示 run second ipynb xx will print 10
  • 安装 confluence-kafka 时“文件名或扩展名太长”?

    我在使用 pip install confluence kafka 安装 confluence kafka 时遇到一些问题 但我收到此错误 文件名或扩展名太长 详细信息如下 Collecting confluent kafka Using
  • Python list.extend() 是保序的吗?

    我想知道扩展函数是否保留两个列表中的顺序 gt gt list 1 2 3 gt gt list extend 4 5 gt gt list 1 2 3 4 5 扩展总是这样工作吗 Yes list extend just extends给

随机推荐

  • 无法找到类型 [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]

    我正在尝试编写一个脚本来使用 powershell 连接到 TFS 但是我陷入了实际连接的部分 credentialProvider new object Microsoft TeamFoundation Client UICredenti
  • OpenCV:将 cvGoodFeaturesToTrack 与 C++ mat 变量结合使用

    我正在尝试使用cvGoodFeatureToTrackVisual Studio 2010 中的函数 图像类型为Mat 我见过的大多数例子都使用IplImage指针 现在我有这个 int w h video frame size Mat g
  • 类型错误:无法腌制 dict_items 对象

    Why does pickle dumps items 失败与TypeError can t pickle dict items objects在 Python 3 5 2 中但不在 Python 2 7 12 中 用 酸洗 字典 pick
  • ITMS-90909:Xamarin Forms 应用程序中不推荐使用 iOS 的 API

    任何人都可以建议如何处理我将 Xamarin Forms 应用程序提交到 iOS 商店时收到的这条消息吗 对可能的重复进行评论 这个问题之前曾被问过 但没有得到解答 我认为不存在已答复的重复项 这是一个已知问题 最近由 Xamarin 团队
  • 建立数据库连接 Amazon EC2 时出错 - 移动我的 WordPress 博客后

    将我的 WordPress 博客移至 Amazon EC2 后 我收到错误 建立数据库连接时出错 我已经检查了 wp config php 文件并且设置正常 本地主机 密码和用户名 我已经阅读了这里的许多问题和答案 但没有任何帮助我 我有
  • 在 Web API 中使用 ExceptionFilterAttribute

    我正在尝试在创建的 Web API 中实现错误处理 需要以 JSON 格式返回异常详细信息 我创建了 BALExceptionFilterAttribute 像 public class BALExceptionFilterAttribut
  • 我们可以在 PHP 的任何函数中传递数组作为参数吗?

    我有一个向用户发送邮件的函数 我想将其参数之一作为 id 数组传递 这可以吗 如果是的话 该怎么办 假设我们有一个函数 function sendemail id userid 在示例中 id应该是一个数组 您可以传递一个数组作为参数 它是
  • 类型参数 T 使用 Eclipse 将类型 T 隐藏在 T[] toArray(T[] a) 中

    将 eclipse 4 2 与 Java 7 一起使用并尝试实现 List 接口的以下方法时 我收到了警告 public
  • 访问 sails.js 的基础 http 服务器

    您好 有没有办法访问 sails 的基本 http 服务器上下文 我想在我的应用程序中使用binaryJS 并且在 gettig 入门指南中 他们正在谈论自己创建服务器 如果您有一个现有的 Express 应用程序 其中包含以下行 var
  • 如何加快这段 Java 代码的速度?

    我正在尝试测试 Java 执行一项简单任务的速度有多快 将一个大文件读入内存 然后对数据执行一些无意义的计算 所有类型的优化都很重要 无论是以不同的方式重写代码还是使用不同的 JVM 欺骗 JIT 输入文件是一个由逗号分隔的 5 亿长的 3
  • 为什么 $count=true 的 OData 查询返回一个对象?

    我试图弄清楚如何正确支持返回 OData API 中 已过滤的 数据集中的项目数 我的理解是添加 count true查询字符串的参数应该允许这样做 现在 基于官方文档中教程的示例 https www odata org getting s
  • SQL 2008 存储过程中的可选 where 子句/参数?

    我正在编写一些更新表的代码 根据用户想要执行的操作 它会更新一大组记录或较小的记录 描述因素是组ID 用户可以选择是更新表中的所有记录 还是仅更新具有该 groupID 的记录 我想对两个实例使用相同的存储过程 其中可能有一些逻辑来区分场景
  • JQuery html() 与 innerHTML

    我可以完全依赖 jQuery 吗html 方法的行为与innerHTML 有什么区别吗innerHTML和 jQuery 的html 方法 如果这些方法都做同样的事情 我可以使用 jQuery 的吗 html 方法代替innerHTML 我
  • 获取 Firefox 中扩展的附加 ID

    我想在浏览器选项卡中打开扩展作为普通的 html 页面 以便我可以使用 selenium WebDriver 自动化它 在 Firefox 中 可以使用这样的链接来完成 moz extension f1b30486 cd88 4319 bb
  • 在生产模式下写入全局变量有什么问题?

    我看了一下连接mongodb的示例代码 看到了一句看不懂的内容 为什么在开发的情况下使用全局变量是安全的 又为何没有投入生产 您不需要理解代码 请只看评论部分 import MongoClient from mongodb let clie
  • 为什么主要编译器对 stdint.h 使用 typedef 而对 stdbool.h 使用 #define?

    我刚刚注意到 gcc 和 clang 似乎都对 stdint h 使用 typedef 但对 stdbool h 使用 define 例子 clang 的 stdint h https clang llvm org doxygen stdi
  • 应用程序中有多少个并发线程才算是很多?

    5 100 1000 我想 这取决于 但是取决于什么呢 作为服务器守护进程 服务运行的应用程序有什么常见之处 什么是硬限制 鉴于机器可以处理总体工作负载 我如何确定开销在多少个线程时开始对性能产生影响 操作系统之间的重要区别是什么 还应该考
  • 从 Windows 任务列表返回命令行

    我正在寻找一个命令来获取在 Windows 任务管理器中写入的命令行 我正在使用tasklist fo CSV v但它不提供我查看任务管理器时得到的命令行 我附上一张图片来说明我的意思 它是最右边的一列 我在系统调用中需要这些信息r 只是为
  • 如何在eclipse中配置ADT插件

    开发者网站上有以下说明 配置 ADT 插件 一旦 Eclipse 重新启动 您必须指定 Android SDK 目录的位置 在出现的 欢迎使用Android开发 窗口中 选择 使用现有的SDK 浏览并选择您最近下载并解压的 Android
  • 限制多处理python中的进程数量

    我的要求是生成hundreds of HTTP POST requests per second 我正在使用它urllib2 def send req urllib2 Request url req add data data respon