python - 使用 Jira-Python 执行线程偶尔会导致 401 错误
问题描述
我正在尝试使用 Jira-Python 查询并显示大量 JIRA 票证。
我不是一次查询一张票,而是为每张我想从中获取结果的票创建一个线程,将所有结果存储在一个列表中,然后在所有结果都输入后,在表格中显示结果。
这适用于少于约 200 个票证的查询,但任何大于该票数的查询,我开始仅在某些线程上收到 401 错误,而其他线程则正常。
我对登录数据和获取要通过的小票列表没有任何问题。
这是我登录后在主线程中所做的事情:
jiraTicketLists = self.chunks(self.jiraQueryData, listSize) #Split full list into smaller lists to run in each thread
for jiraTicketList in jiraTicketLists:
t = threading.Thread(target=jiraFunctions.queryJiraTicket, args=(jiraTicketList, self.jiraFieldList, self))
t.start()
并在创建的线程中:
def queryJiraTicket(ticketNumberList, attributeList, parent):
for ticketNumber in ticketNumberList:
try:
issue = JIRA.issue(ticketNumber, expand='changelog')
jiraDict = {}
for attribute in attributeList:
jiraAttr = ""
if attribute == "Summary":
jiraAttr = issue.fields.summary
elif attribute == "Description":
jiraAttr = issue.fields.description
elif attribute == "Assignee":
try:
jiraAttr = issue.fields.assignee.name
except:
jiraAttr = "Unassigned"
elif attribute == "Status":
jiraAttr = issue.fields.status
elif attribute == "Priority":
jiraAttr = issue.fields.priority
elif attribute == "Type":
jiraAttr = issue.fields.issuetype
elif attribute == "Labels":
jiraAttr = issue.fields.labels
elif attribute == "Comments":
jiraAttr = [comment["body"] for comment in issue.raw['fields']['comment']['comments']]
elif attribute == "Ticket Number":
jiraAttr = issue
elif attribute == "Transitions":
jiraAttr = JIRA.transitions(issue)
elif attribute == "Changelog":
changelog = issue.changelog
historyList = []
for history in changelog.histories:
for item in history.items:
historyList.append(history.created)
historyList.sort()
jiraAttr = historyList
jiraDict[attribute] = jiraAttr
if parent != None:
#Update UI with new ticket data
parent.ticketList.append(jiraDict)
parent.ticketNum = parent.ticketNum + 1
parent.updateProgressBarSignal.emit()
if parent.ticketNum == parent.numberOfTickets:
parent.getJiraTicketData()
except jira.JIRAError as e:
print e.status_code, e.text
知道为什么我在大列表上得到 401 错误,但在小列表上却没有?
解决方案
推荐阅读
- python - 在 Dash DataTable 中插入形状
- javascript - 从 REACT JS 中的 Firestore 数据库获取嵌套数据
- php - wordpress wp-db.php中出现奇怪的内存错误
- node.js - 仅将更改部署到 Firebase 辅助函数
- vba - 从 excel 中的选定范围更新 powerpoint 图表的数据
- c++ - 从 std::function 参数类型推导出模板参数
- python-3.x - CMySQLConnection(*args, **kwargs): TypeError: __init__() 接受 1 个位置参数,但给出了 2 个
- arrays - C: 对于二维数组,有没有等价于 `&arr[0]` 的东西?
- c# - 如何通过 Microsoft Bot Framework 将记录插入 Azure 表存储?
- python - 展开 DataFrame 的列并用自定义值填充其他列的内容