Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python github3.py:可以与grequests一起使用吗?_Python_Grequests_Github3.py - Fatal编程技术网

Python github3.py:可以与grequests一起使用吗?

Python github3.py:可以与grequests一起使用吗?,python,grequests,github3.py,Python,Grequests,Github3.py,我想知道以前有没有出现过这种情况 我有一个从我们的GitHub企业实例下载大量信息的应用程序(目前没有使用github3.py,但我正在考虑将其转换为使用github3.py)。基本上,它抓取189个回购,然后对于每个回购,它提取分支、标记和提交。这显然是相当慢的,因为它必须连续执行如此多的HTTP请求 我想知道是否可以让github3.py返回对象,以便让grequests并行处理请求?或者,另一种方法是包装和隐藏grequest,方法是在github3.py中设置“并发级别”,并让它并行处理

我想知道以前有没有出现过这种情况

我有一个从我们的GitHub企业实例下载大量信息的应用程序(目前没有使用github3.py,但我正在考虑将其转换为使用github3.py)。基本上,它抓取189个回购,然后对于每个回购,它提取分支、标记和提交。这显然是相当慢的,因为它必须连续执行如此多的HTTP请求

我想知道是否可以让github3.py返回对象,以便让grequests并行处理请求?或者,另一种方法是包装和隐藏grequest,方法是在github3.py中设置“并发级别”,并让它并行处理请求。或者是一个上下文管理器:

使用github3.parallel()的
:
标签=拉标签(git\U repo)
分支机构=拉分支机构(git\U回购)

我认识到,开发一个能够很好地与并行化协同工作的API可能是一个相当具有挑战性的问题,因为它是一个如此不同的范例。这就是为什么我不想把问题追踪器弄得乱七八糟的原因。

这将非常困难
grequests
和其他围绕请求的包装器不提供会话API(因为请求的会话并不像它们应该的那样线程安全——也就是说,它们不是)。如果他们提供了一种方法,这可能会奏效。最好的方法是创建多个
GitHub
实例,每个worker-greenlet/线程中一个,并在每个线程的上下文中使用它们。通过这样做,您将为每个greenlet拥有一个会话,并且您的操作应该是安全的(只要您不在线程之间传递对象)