Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能


Posted in Python onJanuary 11, 2018

本文实例讲述了Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能。分享给大家供大家参考,具体如下:

#coding=utf8
'''
random.randint(a, b):用于生成一个指定范围内的整数。
其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
random.choice(sequence):从序列中获取一个随机元素
参数sequence表示一个有序类型(列表,元组,字符串)
'''
import httplib,json
import time
import threading
from random import randint,choice
#创建请求函数
def postRequest(threadNum):
  postJson={
        }
  #定义需要进行发送的数据
  postData=json.dumps(postJson)
  #定义一些文件头
  headerdata = {
    "content-type":"application/json",
     }
  #接口
  requrl ="/v1/query"
  #请求服务,例如:www.baidu.com
  hostServer=""
  #连接服务器
  conn = httplib.HTTPConnection(hostServer)
  #发送请求
  conn.request(method="POST",url=requrl,body=postData,headers=headerdata)
  #获取请求响应
  response=conn.getresponse()
  #打印请求状态
  if response.status in range(200,300):
    print u"线程"+str(threadNum)+u"状态码:"+str(response.status)
  conn.close()
def run(threadNum,internTime,duration):
  #创建数组存放线程
  threads=[]
  try:
    #创建线程
    for i in range(1,threadNum):
      #针对函数创建线程
      t=threading.Thread(target=postRequest,args=(i,))
      #把创建的线程加入线程组
      threads.append(t)
  except Exception,e:
    print e
  try:
    #启动线程
    for thread in threads:
        thread.setDaemon(True)
        thread.start()
        time.sleep(internTime)
    #等待所有线程结束
    for thread in threads:
        thread.join(duration)
  except Exception,e:
      print e
if __name__ == '__main__':
  startime=time.strftime("%Y%m%d%H%M%S")
  now=time.strftime("%Y%m%d%H%M%S")
  duratiion=raw_input(u"输入持续运行时间:")
  while (startime+str(duratiion))!=now:
    run(10,1,int(duratiion))
    now=time.strftime("%Y%m%d%H%M%S")

运行结果:

Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
跨平台python异步回调机制实现和使用方法
Nov 26 Python
python通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
Python getopt模块处理命令行选项实例
May 13 Python
一张图带我们入门Python基础教程
Feb 05 Python
Python标准库之itertools库的使用方法
Sep 07 Python
浅谈Python的list中的选取范围
Nov 12 Python
通过python实现弹窗广告拦截过程详解
Jul 10 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
利用Python优雅的登录校园网
Oct 21 Python
Django正则URL匹配实现流程解析
Nov 13 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
Jan 11 #Python
python实现员工管理系统
Jan 11 #Python
Python使用base64模块进行二进制数据编码详解
Jan 11 #Python
Python实现备份MySQL数据库的方法示例
Jan 11 #Python
教你用Python写安卓游戏外挂
Jan 11 #Python
python实现学生管理系统
Jan 11 #Python
linecache模块加载和缓存文件内容详解
Jan 11 #Python
You might like
swoole_process实现进程池的方法示例
2018/10/29 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
google地图的路线实现代码
2009/08/20 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
python实现多线程行情抓取工具的方法
2018/02/28 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
python实现电子书翻页小程序
2019/07/23 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
Python实现井字棋小游戏
2020/03/09 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
线程同步的方法
2016/11/23 面试题
11月升旗仪式讲话稿
2014/02/15 职场文书
党在我心中演讲稿
2014/09/02 职场文书
车贷收入证明范本
2014/09/14 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
初二学生评语大全
2014/12/26 职场文书
采购内勤岗位职责
2015/04/13 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
全新239军机修复记
2022/04/05 无线电