Найти - Пользователи
Полная версия: послать 50 запросов
Начало » Python для новичков » послать 50 запросов
1
Kanat
Всем привет ткните что курить…
Необходимо послать на сервер параллельно множество запросов в кратчайшее время..
from multiprocessing import Process, Lock
from time import *
import pycurl
import urllib
import random
def sendtrnx():
xmlrpc_header = [
"User-Agent: PycURL XML Test", "Content-Type: text/xml"
]
c = pycurl.Curl()
url = "https://blabla.bla/"
c.setopt(c.URL, url)
c.setopt(c.PROXY,"PROXY") #proxy settings
c.setopt(c.PROXYPORT,3128) #proxy port
c.setopt(c.PROXYUSERPWD,"user:pass")
c.setopt(c.WRITEDATA,file1)
c.setopt(c.NOPROGRESS,0)
c.setopt(c.SSL_VERIFYPEER, 0)
c.setopt(c.SSL_VERIFYHOST, 1)
c.setopt(c.HTTPHEADER, xmlrpc_header)
c.setopt(c.POSTFIELDS,stroka)
c.setopt(c.POSTFIELDSIZE,len(stroka))
c.perform()
for i in range(1,3):
param1=random.randrange(1,6,1)
param2=random.randrange(6,6600000,1)
stroka="""
<Message id="%s" version="1.0">
<XMLRequest>%s</XMLRequest>
</Message>
"""%(param1,param2)

def f(l,i):
l.acquire()
sendtrnx()
l.release()
if __name__ == '__main__':
lock = Lock()
for num in range(2):
Process(target=f,args=(lock,num)).start()
Тоесть я думал,что будет 2 процеса которые вызовут по 2 раза функцию sendtrnx()..но болт…
ткните новичка.
s0rg
Зачем вам Lock() если необходимость в параллельном выполнении?
Kanat
Взял из примера.Может есть какие то примеры,схожие с моим.?
Я чесно говоря даже не могу четко понять алгоритм действий
s0rg
Уберите из кода строчки l.acquire() и l.release().
И будет вам счастье )
Kanat
спасибо…
еще вопрос..
а как реализовать многопоточную отсылку запроса?sendtrnx…
еслу убрать acquire и release…то уникально
    for i in range(1,3):
param1=random.randrange(1,6,1)
param2=random.randrange(6,6600000,1)
всего 1 раз…

Мне надо послать 500 раз одновременно уникальных post для проверки работоспособности сервера…(утилиты не подходят)
s0rg
Поместите этот код внутрь sendtrnx
sanzstez
Возможно сам сервер будет отвергать множество одновременных запросов. Это надо учесть.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB