#!/usr/bin python2.6

# -*- coding: utf-8 -*-

import threading, datetime, time, httplib

# 初始最大并发数

START_THEAD_COUNT = 200

# 递增并发数

THREAD_INCREASE_STEP = 10

# 域名

DOMAIN = 'www.baidu.com'

# 默认http请求

METHOD = 'get'

# 默认访问的web路径

PATH = '/'

# 请求发送间隔 整数

INTERVAL = 5  # 5秒

'''Factory'''

class biz :

'''Main'''

def run(self) :

start = datetime.datetime.now()

global FAILED_COUNT

FAILED_COUNT = 0

threads = []

# thread instance initialization

for i in range(START_THEAD_COUNT) :

t=threading.Thread(target=self.execute, args=())

threads.append(t)

# activate threads

for i in range(START_THEAD_COUNT) :

threads[i].start()

# wait for all ends

for i in range(START_THEAD_COUNT) :

threads[i].join()

delta = datetime.datetime.now() - start

writeline('INFO', 'Total is \'' + str(START_THEAD_COUNT) + '\' while failed \'' + str(FAILED_COUNT) + '\' in ' + str(delta.seconds) + str(delta.microseconds / 1000) + 'ms.')

return (True, None)

'''Execute http request and get response status'''

def execute(self) :

global FAILED_COUNT

conn = httplib.HTTPConnection(DOMAIN)

conn.request(METHOD, PATH)

r = conn.getresponse()

if r.status not in (200, 302) : FAILED_COUNT = FAILED_COUNT + 1

conn.close()

return (True, None)

'''Log writer'''

def writeline(status, msg) :

line = time.strftime('%Y-%m-%d %X', time.localtime(time.time())) + ' [' + status + '] ' + msg

print line

return (True, line)

if __name__ == '__main__' :

o = biz()

while True :

r, c = o.run()

if not r : writeline('FAILED-', c)

time.sleep(INTERVAL)

# update max threads

START_THEAD_COUNT = START_THEAD_COUNT + THREAD_INCREASE_STEP

python多线程请求接口_python多线程实现http请求相关推荐

  1. python web框架 多线程和多进程_python 多线程和多进程

    多线程与多进程 知识预览 一 进程与线程的概念 二 threading模块 三 multiprocessing模块 四 协程 五 IO模型 回到顶部 一 进程与线程的概念 1.1 进程 考虑一个场景: ...

  2. python实用程序育儿法_Python多线程 简明例子

    Python多线程 简明例子 (2010-03-11 15:15:09) Python多线程 简明例子 综述 多线程是程序设计中的一个重要方面,尤其是在服务器Deamon程序方面.无论何种系统,线程调 ...

  3. python真正实现多线程的方法_python多线程几种方法实现

    匿名用户 1级 2018-05-27 回答 Python进阶(二十六)-多线程实现同步的四种方式 临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能, ...

  4. python多线程的作用_Python多线程中三个函数的强大功能简介

    在Python多线程中有三个比较简单的函数,在实际的相关操作中你对这一实际操作是否了解?是否对其感兴趣?如果你想对Python多线程的开发与多线程程序及相关实际操作方案有所了解的话,你就可以点击以下的 ...

  5. python多核多线程编程实例_Python多线程

    多线程基础概念 并行与并发并行:同时处理多个任务,必须在多核环境下 一段时间内同时处理多个任务,单核也可以并发 并发手段线程:内核空间的调度 进程:内核空间的调度 协程:用户空间的调度 线程可以允许程 ...

  6. python多线程共享全局变量_Python多线程-共享全局变量

    多线程-共享全局变量 import threading import time g_num = 200 def test1(): global g_num for i in range(5): g_n ...

  7. python通达信接口_python通达信接口-通达信 量化交易。

    Python 里没有接口,如何写设计模式? 我曾经实现过web测试的自动化库,主要说一下模拟浏览器部分:对于ie,mshtml组件. 好自动化而且收益可观+ Python是一种动态类型语言,拥有duc ...

  8. python调用文件下载接口_python接口自动化21-下载excel文件(Content-Type:octets/stream)...

    前言 Content-Type类型为octets/stream,这种一般是文件类型了,比如有时候需要导出excel数据,下载excel这种场景如何用python来实现呢? 抓下载接口 1.下载的场景如 ...

  9. python怎么写接口_python接口怎么写

    1. 用python怎么写一个接口自动化框架 #!/usr/bin/env python import sys str = True while (str): dig = int(input()) i ...

最新文章

  1. ios 构建版本一直在处理中_iOS关于审核提交构建版本不显示问题集锦
  2. 了解一下:机器学习性能优化的6个指标
  3. linux怎么增加cpu负载,Linux下的CPU平均负载
  4. 【Netty】NIO 通道 ( Channel ) 组件
  5. macos自带java_在 MacOS 上安装 Java - Java 入门教程
  6. 带你学python基础:字符串
  7. 【CyberSecurityLearning 55】SQL注入
  8. 40. Combination Sum II **
  9. 一文入门网络编程:常见协议、通信过程、Socket、CS/BS、TCP/UDP
  10. cpout引脚是干什么的_FPGA中差分信号的定义和使用(一)
  11. mysql 子查询 根据查询结果更新表
  12. mysql privileges
  13. Android Device Chooser中显示Target unknown解决方法
  14. kali安装zmap
  15. 模拟游戏--艾伦·图灵的传奇人生
  16. c语言课程设计找出肇事车牌,C语言课程设计参考题目.doc
  17. 转载:ITRS/GCRS/J2000坐标系的相互转换
  18. 小米路由器和TP-Link做wifi无线桥接
  19. 中国科学院大学2019年高等代数考研试题
  20. C程序设计语言思维导图

热门文章

  1. 小程序之修改单条数据
  2. 不能打开要写入的文件,软件安装不上解决方法
  3. 开发人工智能使用哪种编程语言好
  4. VS2013出现未能正确加载 microsoft.visualstudio.editor.implementation.editorpackage的解决方法
  5. 菌群数据预处理-microbiome包
  6. bzoj 3007 拯救小云公主
  7. 在java里如何跨网页传参_【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...
  8. XPE启动蓝屏或FBA反复重启的问题
  9. 电脑超时空保卫者——光华反病毒软件(转)
  10. 为你,千千万万遍——《追风筝的人》