小编exp*_*pez的帖子

防止mongodb死亡'状态应该是:打开'

我在一个多线程的clojure应用程序中使用mongodb,使用monger库,我的一个生产者线程正在死亡

java.lang.IllegalStateException: state should be: open
 at com.mongodb.assertions.Assertions.isTrue (Assertions.java:70)
    com.mongodb.connection.DefaultServer.getConnection (DefaultServer.java:84)
    com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.getConnection (ClusterBinding.java:86)
    com.mongodb.operation.QueryBatchCursor.getMore (QueryBatchCursor.java:205)
    com.mongodb.operation.QueryBatchCursor.hasNext (QueryBatchCursor.java:103)
    com.mongodb.MongoBatchCursorAdapter.hasNext (MongoBatchCursorAdapter.java:46)
    com.mongodb.DBCursor.hasNext (DBCursor.java:155)
    clojure.lang.RT$4.invoke (RT.java:512)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.RT.seq (RT.java:525)
    clojure.core$seq__6416.invokeStatic (core.clj:137)
    clojure.core$map$fn__6875.invoke (core.clj:2719)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.RT.seq (RT.java:525)
    clojure.core$seq__6416.invokeStatic (core.clj:137)
    clojure.core$map$fn__6875.invoke (core.clj:2719)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.RT.seq (RT.java:525)
    clojure.core$seq__6416.invokeStatic (core.clj:137)
    clojure.core$filter$fn__6902.invoke (core.clj:2782)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.ChunkedCons.chunkedNext (ChunkedCons.java:59)
    clojure.lang.ChunkedCons.next (ChunkedCons.java:43)
    clojure.lang.RT.next (RT.java:703)
    clojure.core$next__6400.invokeStatic (core.clj:64)
    clojure.core$dorun.invokeStatic (core.clj:3115)
    clojure.core$doall.invokeStatic (core.clj:3121)
    clojure.core$doall.invoke (core.clj:3121)
    myapp.ns1.$somefn.invokeStatic (ns1.clj:93)
    myapp.ns1.$somefn.invoke (ns1.clj:90)
    myapp.ns1$anotherfn.invokeStatic (ns1.clj:124)
    myapp.ns1$anotherfn.invoke (ns1.clj:116)
    myapp.ns2$doit.invokeStatic …
Run Code Online (Sandbox Code Playgroud)

multithreading clojure mongodb mongodb-java monger

7
推荐指数
1
解决办法
991
查看次数

在多编辑团队中格式化 Clojure 代码

随着我们 Clojure 团队的成长,我们看到越来越多的编辑器在使用。这导致了许多无关的空白变化。

我最关心的并不是代码的格式如何——所有编辑器都会生成可读的代码——更多的是git blame变得非常不可用,因为项目中的每一行都会因格式的无趣更改而夸大其历史记录。

为了解决这个问题,现在两个最有力的竞争者是在提交之前使用cljfmt和/或从 git 的变更集中删除空白更改的脚本。

其他人都是如何处理这个问题的?

git diff whitespace code-formatting clojure

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

如何减少获取 mongodb 模式锁的时间?

我们有一个 mongodb 集群,由 WiredTiger 支持,在生产中,有一个 3 节点副本集,由一个主节点和两个从节点组成。其中一个从站有另一个共同定位的服务,可以广泛地查询从站。在解决协同定位服务中的一些缓慢问题时,我看到了很多令人惊讶的缓慢查询。这个用了 3.3 秒:

  find: "myColl",
  filter: { myField: "myValue" },
  projection: { name: 1 },
  $db: "myDb",
  $clusterTime: { clusterTime: Timestamp(1568198047, 3), signature: { hash: BinData(0, 0000000000000000000000000000000000000000), keyId: 0 } },
  lsid: { id: UUID("2ed823aa-e6af-4898-a4c1-c039d28a32ab") },
  $readPreference: { mode: "secondary" } }
  planSummary: IXSCAN { myField: 1 } keysExamined:0 docsExamined:0 cursorExhausted:1 numYields:0 nreturned:0 reslen:232
  locks:{ Global: { acquireCount: { r: 1 } },
          Database: { acquireCount: { r: 1 } },
          Collection: { acquireCount: …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query

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

IdeaVIM键绑定在Intellij中不起作用

我刚刚升级了IdeaVIM,以使用新添加的窗口管理支持。我遇到的问题是键绑定根本无法正常工作。我尝试手动编辑键盘映射,重新添加默认绑定,但是它们无效。

当我按下Cw时,在modeline中得到了一些帮助,让我知道该前缀上有哪些键绑定(l代表右窗口,h代表左窗口等),但是当我按下第二个键时,什么也没发生!这是怎么回事?我正在运行ideavim 13.1.3。

intellij-idea ideavim

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