说明:
1、抓取jira中某个项目的bug信息,并输出对应的创建者和开发者
2、增加线程的使用,观察使用后,抓取速度的变化
from concurrent.futures import as_completed
from concurrent.futures.thread import ThreadPoolExecutor
from jira import JIRA
def get_bug_inf(bug):
if(bug.get('inwardIssue')):
bug_key = bug['inwardIssue']['key']
bug_info = jr.issue(bug_key)
info = {'assignee': bug_info.fields.assignee.displayName,
'creator': bug_info.fields.reporter.displayName}
issue_item = {
bug_key: info
}
return issue_item
else:
return {}
if __name__ == '__main__':
# 初始化
jr = JIRA('jira地址', basic_auth=('用户名', '密码'))
issues = jr.issue('jiracode')
# 该故事下所有的bug链接
print(issues.raw)
issuelinks = issues.raw['fields']['issuelinks']
issue_list = []
issue_dict = {}
#增加线程的使用
with ThreadPoolExecutor(max_workers=20) as t:
for bug in issuelinks:
# submit第一个参数为方法名,后面的参数为该方法的参数
obj = t.submit(get_bug_inf,bug)
issue_list.append(obj)
#取得返回结果
for future in as_completed(issue_list):
issue_dict.update(future.result())
print(issue_dict)