小编Lee*_*ren的帖子

如何检查MongoDB实例的客户端是否有效?

特别是,我目前正在尝试使用以下函数检查与客户端的连接是否有效:

def mongodb_connect(client_uri):
    try:
        return pymongo.MongoClient(client_uri)
    except pymongo.errors.ConnectionFailure:
         print "Failed to connect to server {}".format(client_uri)
Run Code Online (Sandbox Code Playgroud)

然后我像这样使用这个函数:

def bucket_summary(self):
    client_uri = "some_client_uri"
    client = mongodb_connect(client_uri)
    db = client[tenant_id]
    ttb = db.timebucket.count() # If I use an invalid URI it hangs here
Run Code Online (Sandbox Code Playgroud)

如果给出了无效的URI,有没有办法在最后一行捕获并抛出异常?我最初认为这就是ConnectionFailure的用途(因此连接时可能会被捕获)但我错了.

如果我使用无效的URI运行程序,该程序无法运行,则发出KeyboardInterrupt会产生:

File "reportjob_status.py", line 58, in <module>
tester.summarize_timebuckets()
File "reportjob_status.py", line 43, in summarize_timebuckets
ttb = db.timebucket.count() #error
File "/Library/Python/2.7/site-packages/pymongo/collection.py", line   1023, in count
return self._count(cmd)
File "/Library/Python/2.7/site-packages/pymongo/collection.py", line 985, in _count
with self._socket_for_reads() as (sock_info, slave_ok):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", …
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo

37
推荐指数
2
解决办法
3万
查看次数

如何在远程Linux ssh会话上运行的vim中移动到本地OSX剪贴板?

我在OS X上通过VirtualBox运行linux,我在vim中编辑.我通过在无头状态下运行我的VM然后使用端口转发sshing到linux机器来实现这一点.有没有办法在视觉模式下抽取文本,以便将被拉出的内容放入我的本地剪贴板?

macos vim ssh

11
推荐指数
1
解决办法
1925
查看次数

"g?"具有什么功能?命令在vim中提供

作为一名初学程序员,我最近在vimgolf上练习vim并看到命令"g?" 被有效地用于切换'Ivm'的许多行成为'Vim'.据我所知,这会将每个字母字母向右移动13次,但不理解这将如何证明有用,除非在这些特殊情况下.

vim rot13

10
推荐指数
2
解决办法
2993
查看次数

是否可以通过命令行删除Github上的远程存储库?

我目前正在运行一个bash脚本,使用curl在Github上自动创建一个远程存储库.我想知道是否还有任何方法也可以在命令行上删除远程Github存储库.任何帮助,将不胜感激!

git bash github

6
推荐指数
1
解决办法
533
查看次数

是否可以设置同一会话中所有池连接之间共享的最大重试次数?

目前,我执行以下操作来设置grequest包装器的最大连接重试次数:

self._s = Session()
retries = Retry(total=5, status_forcelist=[500, 502, 503, 504])
self._s.mount('http://, HTTPAdapter(max_retries=retries))
Run Code Online (Sandbox Code Playgroud)

然后我grequest用会话创建一堆对象self._s作为参数之一.例如,创建一组GET请求将使用以下内容完成:

requests = [grequests.get(url, ..., 'session': self._s')]

最后,这些都是最终发布的grequests.map(requests, ...).

问题是我想要一种方法,使最大重试次数持续存在,并在连接池的所有连接中共享.重试似乎仍然仅适用于单个连接.有没有办法做到这一点?这是不可能的,因为新的Retry()对象似乎是在总呼叫每次减少时创建的吗?

session request python-requests grequests

6
推荐指数
1
解决办法
152
查看次数

用于双向消息流的 HTTP/2 与 Web 套接字

除了不向 Javascript 公开 HTTP/2 帧的浏览器之外,在什么情况下 Websocket 会比双向流 gRPC(基于 HTTP/2)之类的东西更好地实现实时双向消息流?另外,HTTP 2.0 是全双工(和双向)是否意味着实际上支持服务器推送?那么,对 SSE 之类的东西有什么需求呢?这已经过时了,对吧?

websocket server-sent-events http2 grpc

6
推荐指数
1
解决办法
4014
查看次数

如何从在远程ssh连接上运行的tmux(复制模式)复制到本地剪贴板

我通过OS X上的VirtualBox运行linux。我是通过在无头状态下运行VM,然后使用端口转发将其切入Linux计算机来实现的。现在,无论将什么复制到虚拟机上的剪贴板中,我都可以粘贴到远程ssh会话中,反之亦然(从tmux复制模式复制)。我尝试使用以下tmux配置:

setw -g mode-keys vi
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "tmux save-buffer - | ssh host pbcopy"
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用...使用鼠标手动复制可以工作,但是tmux复制模式更方便。有任何想法吗?

linux macos ssh tmux

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

为什么我无法在 Chrome 开发人员工具中查看 301 重定向?

如果我卷曲"google.com",我知道它会301重定向到http://www.google.com/. 但是,我在 chrome 的网络选项卡中的任何地方都看不到这一点。我已经尝试了以下所有方法:

  • 在网络选项卡中检查保留日志
  • 在网络选项卡中检查禁用缓存
  • 清空缓存和硬重新加载
  • 转到chrome://net-internals/并清除缓存
  • 在 chrome 中清除所有缓存的图像和文件
  • 在网络选项卡中专门监控“其他”

任何人都可以请解释为什么?我很感兴趣。

subdomain redirect google-chrome http

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

根据相似的列值将数据帧连接在一起

具体来说,假设我有三个数据框d1, d2, d3:

d1:

       X     Y    Z    value
1      0    20   135    43
2      0     4   105    50
3      5    18    20    10
...
Run Code Online (Sandbox Code Playgroud)

d2:

       X     Y    Z    value
1      0    20   135    15
2      0     4   105    14
3      2     9    12    16
...
Run Code Online (Sandbox Code Playgroud)

d3:

       X     Y    Z    value
1      0    20   135    29
2      2     9    14    16
...
Run Code Online (Sandbox Code Playgroud)

我希望能够组合这些数据帧,使得组合数据帧的每一行由三个值组成,基于所有独特的X,Y,Z组合.如果在原始数据帧之一中不存在这样的X,Y,Z组合,那么我只希望它具有null值(或者如果不可能则具有任意低的数值).所以我想要一个输出:

dfinal:

       X     Y    Z    value1  value2  value3
1      0    20   135     43 …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
81
查看次数

在Cassandra中建立一对多关系的最佳方法是什么?

假设我要设计一个系统,用户可以在其中创建帖子,每个帖子都属于一个用户,但一个用户可能有多个帖子。还假设除了要简单地通过postId查找帖子外,我还希望支持查找具有给定userID的所有帖子。我还想存储用户特定的帐户详细信息,例如帐户创建日期。

一种建模方法如下:

CREATE TABLE user (
   userId int,
   name varchar,
   userDetail1,
   userDetail2,
   ...,
   PRIMARY KEY(userId)
);

CREATE TABLE post (
   postId int,
   postDetail1,
   postDetail2,
   ...,
   userId int,
   PRIMARY KEY(postId)
);
Run Code Online (Sandbox Code Playgroud)

据我所读,这不是最佳方法,因为查询特定用户发表的帖子会导致内存效率低下。它是否正确?这是Cassandra不支持在userId上索引发布表的原因吗?

那么理想的解决方案如下吗?

CREATE TABLE user (
   userId int,
   name varchar,
   userDetail1,
   userDetail2,
   ...,
   PRIMARY KEY(userId)
);

CREATE TABLE post (
   postId int,
   postDetail1,
   postDetail2,
   ...,
   userId int,
   PRIMARY KEY(postId)
);

CREATE TABLE user_to_post (
   userId int,
   postId int,
   userDetail1,
   userDetail2,
   ...,
   postDetail1,
   postDetail2,
   ...,
   PRIMARY KEY(userId, postId)
);
Run Code Online (Sandbox Code Playgroud)

使用组合键,查询特定用户的帖子效率更高。但是,采用这种设计,专门为发帖设置表格是否多余?同样,在这种设计中,我希望查找特定用户发布的帖子,并且还希望快速链接到给定帖子的特定用户。我已经读了很多书,但是对于如何在Cassandra中精确设计一对多关系感到非常困惑。

composite-key one-to-many cassandra nosql

3
推荐指数
1
解决办法
1306
查看次数

OpenSSL 标准化中 CSR 配置文件的属性在哪里?

互联网上有大量有关 OpenSSL CSR 配置文件外观的示例,但我还没有遇到过规范/属性实际上标准化/声明的地方。

openssl csr

2
推荐指数
1
解决办法
2499
查看次数

不鼓励在Go中使用单行for循环或if语句吗?

例如,简单检查空字符串:

if s == "" { return 0 }
Run Code Online (Sandbox Code Playgroud)

或者,使用-1预先填充数组的for循环(我不认为有更简单的方法):

for i := range m { m[i] = -1 }
Run Code Online (Sandbox Code Playgroud)

这通常是不鼓励的,即使这些功能完全非常简单吗?我并不是故意迂腐,但我一般都很好奇这种情绪是什么.

for-loop if-statement go

-2
推荐指数
1
解决办法
74
查看次数