def request(params):
    _, name = params
    kv = "name=%s" % (name, )
    url = get_req_url(options, kv)
    status = requests.get(url)
    print("pid: %s, request url: %s, status: %s" %
          (os.getpid(), url, status.reason))
    return status
Beispiel #2
0
def loop_request_wrapper(params):
    start = datetime.datetime.now()
    urls = [
        get_req_url(options, "name=".format(params[1]))
        for _ in range(options.task_num)
    ]
    tasks = [asyncio.ensure_future(request(url)) for url in urls]
    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tasks))
    end = datetime.datetime.now()
    print("visit %s" % (urls))
    print("my pid: %s, parent pid: %s, start at %s, end at %s" %
          (os.getpid(), os.getppid(), start, end))
    print('-' * 80)
def loop_request_wrapper(params):
    # print("params:{}".format(params))
    my_params = get_my_params(params, os.getpid())
    start = datetime.datetime.now()
    urls = [
        get_req_url(options, ("name=%s" % (my_params[i][1], )))
        for i in range(len(my_params))
    ]
    tasks = [asyncio.ensure_future(request(url)) for url in urls]
    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tasks))

    end = datetime.datetime.now()
    print('-' * 80)
    print("my pid: %s, parent pid: %s, start at %s, end at %s" %
          (os.getpid(), os.getppid(), start, end))
async def run():
    semaphore = asyncio.Semaphore(options.con_num)  # 限制并发量为每次con_num个协程
    tasks = [
        hello(get_req_url(options), semaphore) for _ in range(options.task_num)
    ]  # 总共task_num个任务
    await asyncio.wait(tasks)
Beispiel #5
0
define("ip", type=str, default="127.0.0.1")
define("port", type=int, default=8888)
define("api_name", type=str, default="/say/hello")
define("params", type=str, default="name=Lucy")
define("task_num", type=int, default=10)

parse_command_line()


async def request(url):
    session = aiohttp.ClientSession()
    response = await session.get(url)
    # result, status = await response.text()
    result, status = await response.text(), response.status
    await session.close()
    return result, status


if __name__ == "__main__":
    print(datetime.datetime.now())

    tasks = [
        asyncio.ensure_future(request(get_req_url(options)))
        for _ in range(options.task_num)
    ]
    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tasks))

    print(datetime.datetime.now())
Beispiel #6
0
define("port", type=int, default=8888)
define("api_name", type=str, default="/say/hello")
define("params", type=str, default="name=Lucy")

parse_command_line()


async def request(url):
    print("request url %s" % (url,))
    status = requests.get(url)
    return status


def callback(task):
    print("in callback, status:", task.result())


if __name__ == "__main__":
    print(datetime.datetime.now())
    coroutine = request(get_req_url(options))
    task = asyncio.ensure_future(coroutine)

    # 当 coroutine 对象执行完毕之后,就去执行声明的 callback() 方法
    task.add_done_callback(callback)
    # print("Task:", task)

    loop = asyncio.get_event_loop()
    loop.run_until_complete(task)
    # print("Task:", task)
    print(datetime.datetime.now())