jira-api使用gevent,快速批量修改数据

需求

因为我们本地数据库中经常会产生大量的数据,这些数据需要同步至jira.覆盖掉jira上的老数据。

因为jira服务器部署在国外,连接巨慢。每次修改一个,至少需要花费10秒左右的时间。

而jira-api没有提供批量或者异步同步的方法,所以需要自己使用一个异步的方式来实现一次性把所有的请求发送出去。

jira服务端有时候吃不消,会关闭掉我的一些连接,所以还需要在被关闭之后,记录下这些同步至jira失败的,重新继续修改操作

用到的库

gevent  库

gevent是一个基于libev的并发库。它为各种并发和网络相关的任务提供了整洁的API。

jira库。
里面有jira登录,修改,新增issue的方法

代码实现

注意事项

1.需要引用monkey.patch_all()

2.引用monkey.patch_all()之后会有错误信息:

这个是已知bug,在11月29日有人在github上已经提过了,作者会在之后的版本修改。目前不影响使用。请忽略

3.通过这样的方法修改之后,经过我的测试,速度大概快了5倍以上

Posted in Jira相关, python相关