小编use*_*563的帖子

Python SSL连接"EOF违反协议"

我正在使用Django Celery任务连接到使用Gevent请求lib的Facebook Graph API.我一直在运行的问题是,我偶尔会发生违反协议异常的EOF.我已经四处搜索,各种来源提供了不同的修复,但似乎都没有.

我试过猴子修补ssl模块(gevent.monkey.patch_all())和其他一些但没有运气.

我甚至不确定这是否是openssl问题,因为一些消息来源可能会建议我在应用Gevent优化之前没有遇到过它

Connection error: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
Traceback (most recent call last):
File "/home/user/workspace/startup/project/events/tasks.py", line 52, in _process_page
data = requests.get(current_url)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 354, in request
resp = self.send(prep, **send_kwargs)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/sessions.py", line 460, in send
r = adapter.send(request, **kwargs)
File "/home/user/workspace/startup/env/local/lib/python2.7/site-packages/requests/adapters.py", line 250, in send
raise SSLError(e)
SSLError: …
Run Code Online (Sandbox Code Playgroud)

python django celery gevent python-requests

23
推荐指数
1
解决办法
5万
查看次数

芹菜大块内链

我想在celery chain命令中使用块.

chain = task1.s(arg1) | task2.chunks(?,CHUNK_SIZE) | task3.chunks(?, CHUNK_SIZE)
Run Code Online (Sandbox Code Playgroud)

基本上我想要做的是运行task1,将其结果块并发送到task2,然后task2应该调用task3,task3也应该从task2接收chunked结果来完成该过程.为什么?因为task1和task2都可以返回相当数量的项目,我想在更多批次中处理这些项目.

上面的代码不起作用,因为我不太确定要放置什么而不是问号以使其工作.

我不太确定这甚至是可能的,因为搜索没有提供太多结果,所以在这种情况下不可能构建这样的工作流程,我会对合理的替代方案感兴趣.

python task celery

10
推荐指数
1
解决办法
1032
查看次数

标签 统计

celery ×2

python ×2

django ×1

gevent ×1

python-requests ×1

task ×1