小编per*_*kss的帖子

Intellij Mac OS X上的默认Windows键盘映射

是否可以在Mac OS X上使用Intellij IDEA的默认Windows键映射.它不是像Eclipse Windows键映射那样的选项?

java macos keymapping intellij-idea keymaps

8
推荐指数
1
解决办法
3854
查看次数

Apache Storm:通过唯一ID跟踪元组,从Source Spout到Final Bolt

我想要一种在整个Storm拓扑中唯一标识元组的方法,以便可以将每个元组从Spout跟踪到最终的Bolt。

我的理解方式是,例如,传递带有喷口发出的唯一消息ID时:

String msgID = UUID.randomUUID();
// emits a line from user tasks with msg id
outputCollector.emit(new Values(task), msgID);
Run Code Online (Sandbox Code Playgroud)

确认到喷口后,此ID会以某种方式返回(可以在任何时候更早模拟出来以获取通过的ID吗?)。但是,例如在元组上使用get message id:

inputTuple.getMessageId()
Run Code Online (Sandbox Code Playgroud)

这将返回一个新的messageId,而不是元组在Spout处传入的那个。参考https://groups.google.com/forum/#!topic/storm-user/xBEqMDa-RZs

问题

1)有一种方法可以在收集器发出Tuple时获取tuple.getMessageId()。

2)或者可以从拓扑中的任何喷嘴或螺栓的元组中以某种方式获得在喷嘴处传递的messageId吗?

最终解决方案 我希望能够在发出元组时在其上设置ID,然后能够在Storm拓扑中的任何时候再次标识该元组。

还是将必须将我的系统跟踪的唯一messageId作为字段/值传递到每个喷嘴和螺栓的每个输出上。

谢谢

java messaging fault-tolerance apache-storm

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

Java:如何从Thread返回中间结果

使用Java 7 我正在尝试构建一个监视数据存储(某些集合类型)的观察程序,然后在某些点返回某些项目.在这种情况下,它们是时间戳,当时间戳通过我希望它返回到起始线程的当前时间.请参阅下面的代码.

@Override
public void run() {
  while (!data.isEmpty()) {
    for (LocalTime dataTime : data) {
      if (new LocalTime().isAfter(dataTime)) {
        // return a result but continue running
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了关于未来和可赎回的内容,但他们似乎在回归时停止了这个问题.

我不特别想要返回一个值并停止线程,然后启动另一个任务,如果使用callable,除非这是最好的方法.

寻找这个的最佳技术是什么?似乎有这么广泛的做法.

谢谢

java multithreading monitor callable java-7

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

Java:线程生产者消费者等待生成数据的最有效方法是什么

使用BlockingQueue消耗生成的数据时,等待数据出现的最有效方法是什么?

场景:

步骤1)数据列表将是添加时间戳的数据存储.这些时间戳需要按最接近当前时间优先级排序.此列表可能为空.线程将时间戳插入其中.生产

步骤2)我想在另一个线程中使用此处的数据,该线程将从数据中获取时间戳并检查它们是否在当前时间之后.消费者然后生产

步骤3)如果它们在当前时间之后,则将它们发送到另一个线程以供消费和处理.在此处理时间戳数据后,从步骤1数据存储中删除.消费然后编辑原始列表.

在下面的代码中,数据字段引用步骤1中的数据存储.结果是在当前时间之后已发送的时间戳列表.步骤2.然后将结果消耗步骤3.

private BlockingQueue<LocalTime> data;
private final LinkedBlockingQueue<Result> results = new LinkedBlockingQueue<Result>();

@Override
public void run() {
  while (!data.isEmpty()) {
    for (LocalTime dataTime : data) {
      if (new LocalTime().isAfter(dataTime)) {
        results.put(result);
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题 等待数据列表中可能可能为空的数据的最有效方法是什么?专注于:

while (!data.isEmpty())
Run Code Online (Sandbox Code Playgroud)

以前的问题.

java multithreading producer-consumer blockingqueue java-7

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

Clojure 访问需要 var 的静态内部类构建器,但在构建时映射到类错误

在 Clojure 中,我想互操作使用:

JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(new HttpClientConfig
                    .Builder("http://localhost:9200")
                    .build());
Run Code Online (Sandbox Code Playgroud)

所以我写了一些这样的代码:

 (:import (io.searchbox.client JestClientFactory)
          (io.searchbox.client.config HttpClientConfig$Builder))

 (let [factory (JestClientFactory.)
       http-client-config (-> (HttpClientConfig$Builder "http://localhost:9200")
                           (.build))])
Run Code Online (Sandbox Code Playgroud)

但是在构建 jar 时出现以下错误

期望 var,但 HttpClientConfig$Builder 映射到类 io.searchbox.client.config.HttpClientConfig$Builder

任何帮助都会很棒。

java clojure elasticsearch elasticsearch-jest

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

jQuery清除HTML表并插入新行

我一直在搜寻,但是找不到有效的解决方案。

我有一个简单的HTML表:

<table id="myTable">
        <thead>
            <tr>
                <th>UserID</th>
                <th>Current Submissions</th>
            </tr>
        <tbody>
            <tr>
            </tr>
        </tbody>
        <thead>
    </table>
Run Code Online (Sandbox Code Playgroud)

使用socket.io,我将收到清除后要附加到表中的JSON数据。下面的代码只是删除表,不插入新数据?

<script>
    var socket = io();
    socket.on('totalsubmissions', function(msg) {
        $('#myTable').find('tbody').remove();
        // loop over each recevied in the object
        $.each(msg, function(k, v) {
            //display the key and value pair
            var myRow = "<tr><td>" + k + "</td><td>" + v + "</td></tr>";
            $('#myTable').find('tbody').append(myRow);
        });

    });
</script>
Run Code Online (Sandbox Code Playgroud)

我不正确地移走桌子了吗?

html jquery replace html-table socket.io

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

在 Java 接口上调用 .class 时将 .class 传递给 Clojure 函数

我需要将 Java 接口的 .class 传递给 Clojure 中的函数调用。

调用 (class ) 需要对象的实例,因为我想要静态类名。

基本上所以我可以java互操作和使用: keysetHandle.getPrimitive(Aead.class);

Java Source 方法调用

调用 .class 的接口

传递 Aead 但 Aead 只是一个接口想要它像这样但无法解决如何在 Clojure 中获得等效的 Aead.class?

(.getPrimitive 键集句柄 Aead.class)

java clojure clojure-java-interop

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

HackerRank比较Triplets Clojure

我无法解释为什么原子引用不保留inc的值.

1)如何纠正这个?2)为什么在调试模式下它似乎给出了正确的值?

我知道这可能不是最佳解决方案,但想要理解为什么它不起作用.

你的任务是通过比较a0和b0,a1和b1,a2和b2来找到他们的比较点.

如果a大于b,那么Alice将获得积分.如果a小于b,则Bob获得积分.如果a等于b,那么两个人都没有得到一个点.

(defn compare-the-triplets
  [alice bob]
  (let [alice-score (atom 0)
        bob-score (atom 0)]
    (for [i (range 3)]
      (let [a (get alice i)
            b (get bob i)]
        (cond
          (> a b) (swap! alice-score inc)
          (< a b) (swap! bob-score inc))
        )) [@alice-score @bob-score]))

(compare-the-triplets [5 6 7] [3 6 10])
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它为Atom返回0和0.我觉得这可能不是最好的答案,但它真的很烦人为什么调试工作并获得正确值的原子,但然后他们没有正确返回.

使用let和for的范围一定不能正确.

clojure

0
推荐指数
1
解决办法
271
查看次数