-
Notifications
You must be signed in to change notification settings - Fork 89
2.6 多进程并发 多线程 协程,代码例子。
ydf0509 edited this page Apr 20, 2021
·
1 revision
import time
"""
这种是多进程方式,一次编写能够兼容win和linux的运行。一次性启动16个进程 叠加 多线程 并发。
"""
from function_scheduling_distributed_framework import task_deco, BrokerEnum, ConcurrentModeEnum, run_consumer_with_multi_process
import os
import requests
import threading
@task_deco('test_multi_process_queue',broker_kind=BrokerEnum.REDIS_ACK_ABLE,concurrent_mode=ConcurrentModeEnum.THREADING,qps=100)
def fff(x):
resp = requests.get('http://www.baidu.com/content-search.xml')
print(x,os.getpid(),threading.get_ident(),resp.text[:5])
if __name__ == '__main__':
for i in range(10000):
fff.push(i)
# fff.consume() # 这个是单进程多线程/协程 消费。
# 一次性启动16个进程 叠加 多线程 并发。此demo可以作为超高速爬虫例子,能充分利用io和cpu,在16核机器上请求效率远远暴击 scrapy 数十倍,大家可以亲自对比测试。
run_consumer_with_multi_process(fff,16)