小编Edd*_*Edd的帖子

Kafka Streams DSL:将 KStream 聚合到 GlobalKTable

我有一个输入流:

KStream<String, X> inputStream = ...

我想以这样的方式操作(过滤然后聚合)GlobalKTable<String, Y>,我可以输出到 a然后我可以使用以下方式读回:

KeyValueIterator<String, Y> = streams.store("y-global-store", QueryableStoreTypes.keyValueStore()).all()

Streams DSL 可以支持这个吗?如果输出表是 a 似乎是可能的KTable,但是鉴于我在这家商店中的数据量很少,我想使用 aGlobalKTable


这是我的处理器,它将 a 转换KStream<String, X>为 aKTable<String, Y>

KTable<String, Y> outputTable = inputStream
    .filter(...)
    .groupByKey(Grouped.with(Serdes.String(), ySerde))
    .aggregate(
        initializeWithNull(),
        aggregateXToAY(),
        Materialized.`as`<String, Y, KeyValueStore<Bytes, ByteArray>>("y-global-store")
            .withKeySerde(stringSerde)
            .withValueSerde(tagRecordSerde)
    )
Run Code Online (Sandbox Code Playgroud)

但是,这不会创建一个GlobalKTable,我错过了什么?

apache-kafka-streams

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

未解决的参考:protoc - 使用 Gradle + Protocol Buffers 时

我有一个使用 Kotlin DSL 的 gradle 项目

build.gradle.kts

plugins {
    kotlin("jvm") version "1.4.21"
    id("com.google.protobuf") version "0.8.10"
}

group = "schema"
version = "0.0.1-SNAPSHOT"

repositories {
    mavenCentral()
}
protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.0.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

模式.proto

syntax = "proto3";
package schema;

message Message {
  string content = 1;
  string date_time = 2;
}
Run Code Online (Sandbox Code Playgroud)

和项目结构

schema
-src/main/proto/schema.proto
-build.gradle.kts
Run Code Online (Sandbox Code Playgroud)

每当我运行时,gradle build我都会收到错误:

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/x/schema/build.gradle.kts' line: 13

* What went wrong:
Script compilation …
Run Code Online (Sandbox Code Playgroud)

protocol-buffers gradle kotlin

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

STL在C++中映射错误C2679

我在尝试打印STL Map中的int和字符串对时遇到问题:

这是我正在使用的代码:

#include <iostream>
#include <utility>
#include <map>

using namespace std;
typedef map<int,string> intID;

int main(){

    intID ID;
    ID.insert(pair<int,string>(123,"studentname1"));
    ID.insert(pair<int,string>(124,"studentname2"));
    ID.insert(pair<int,string>(122,"studentname3"));

    intID::iterator IDIter;
    for(IDIter = ID.begin();IDIter != ID.end();++IDIter){
        cout <<"ID: " << IDIter->first <<", Name: " << IDIter->second << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

错误发生在该", Name: " << IDIter->second部分,<<加下划线说"没有运算符匹配这些操作数"

编译错误是:

错误1错误C2679:二进制'<<':没有找到哪个运算符采用'std :: string'类型的右手操作数(或者没有可接受的转换)

我试图打印出该对的第二个成员(学生名)我是STL映射的新手,所以我不确定我做错了什么,我需要改变什么?

c++ containers stl

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

AsyncTask不与第二个AsyncTask同时运行

我有一个AsyncTask

private class LoadData extends AsyncTask<String, Void, String> {
    private String WEBURL;
    LoadData(String url){
        this.WEBURL=url;
    }
    protected String doInBackground(String... params) {
        System.out.println("Downloading");
        URL url = new URL(WEBURL);
        URLConnection conn = url.openConnection();
        conn.connect();
        byte buffer[] = new byte[1024];
        InputStream in = new BufferedInputStream(url.openStream());
        String contents="";
        while((count = in.read(buffer))!=-1){
        total+=count;
        contents += new String(buffer, 0, count);
        }
        System.out.println("Downloaded");
        in.close;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我试着LoadData打电话给两个人

new LoadData("http://www.google.com").execute();
new LoadData("http://www.stackoverflow.com").execute();
Run Code Online (Sandbox Code Playgroud)

我希望输出:

正在下载下载正在下载

但相反,我得到了

正在下载已下载的下载

这意味着AsyncTasks不是同时执行的.为什么是这样?我认为线程的重点是这不会发生?+有没有办法让他们同时运行而不需要更改太多的代码?

multithreading android android-asynctask

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

Android API上的AsyncTask Thread_Pool_Executor <11

我试图允许我的应用程序在旧版Android,特别是API 10上运行.

我已经下载了支持包并用它们来解决一些问题但是我很难解决这个问题:

字段需要API级别11(当前最小值为10):android.os.AsyncTask #THREAD_POOL_EXECUTOR

Thread_Pool_Executor方法仅在API 11中添加.

有什么办法可以在API 10中使用它,或者我必须恢复到:

myAsyncTask().execute();
Run Code Online (Sandbox Code Playgroud)

代替:

myAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
Run Code Online (Sandbox Code Playgroud)

如果是这样,我如何检查API级别?

compatibility android android-asynctask

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

Java:双打不正常显示

我正在尝试计算以下两个双打的乘积:

double x = 196.0d;
double y = 0.5144d;

double z = x * y;
Run Code Online (Sandbox Code Playgroud)

答案应该是,z = 100.8224;但java计算它z = 100.82239999999999;

是什么造成的?

java multiplication

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

Java思考:获取类而不是子类型

我正在从org.reflections升级:反射:0.9.5到版本0.9.9.我在用:

Reflections reflectionPaths = new Reflections("resources", new TypeAnnotationsScanner());
Set<Class<?>> rootResourceClasses = reflectionPaths.getTypesAnnotatedWith(Path.class);
Run Code Online (Sandbox Code Playgroud)

这使我获得resources了包含@PathAnnotation的所有类.由于库已更新,因此顶行需要额外new SubTypesScanner()的代码才能运行.但是我不希望返回子类型.

如何使用这个新版本的库来仅撤回非子类型的类和接口?


如果我不包含SubTypesScanner,我会得到此异常

org.reflections.ReflectionsException: Scanner SubTypesScanner was not configured
    at org.reflections.Store.get(Store.java:58)
    at org.reflections.Store.get(Store.java:70)
    at org.reflections.Store.getAll(Store.java:97)
    at org.reflections.Reflections.getAllAnnotated(Reflections.java:423)
    at org.reflections.Reflections.getTypesAnnotatedWith(Reflections.java:384)
    at org.reflections.Reflections.getTypesAnnotatedWith(Reflections.java:370)
Run Code Online (Sandbox Code Playgroud)

java reflection

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

将字符串拆分为"*"字符时出现PatternSyntaxException

每次我尝试"hello*world"使用s.split("*");我得到一个PatternSyntaxException 来分割字符串.

我尝试过使用,s.split("\*");但这给了我另一个错误.我确定这很简单.

我怎么阻止这个?

java regex

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

第二个JFrame首先关闭

两个JFrame,

JFrame Main; // Main JFrame

JFrame Sub; //Second JFrame that is initialized from within Main via a JMenuItems ActionListener.

mainMenuItem.setActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent arg0) {
        try{
            Sub subFrame = new Sub();
            subFrame.setVisible(true);
        }catch(Exception e){}
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

问题是每当我关闭第二个JFrame(Sub)时它会关闭第一个JFrame(Sub).

两者JFrame都有:

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)

这是问题的一部分吗?

java swing jframe

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

正则表达式获取没有属性的 HTML 按钮和锚标记

我正在尝试编写一个正则表达式,它将列出HTML 文档中没有属性的所有button和标签。anchoranalytics-on

我有两种测试情况:

<button class="btn"
    ng-click="doSomething()">Do something without analytics</button>
Run Code Online (Sandbox Code Playgroud)

<button class="btn"
    ng-click="doSomething()"
    analytics-on analytics-event="Did something" analytics-category="Category">Do something with analytics</button>
Run Code Online (Sandbox Code Playgroud)

第一个应该匹配,但第二个不应该匹配,因为它具有分析标签。

到目前为止我有:

/<(button|a)([^>]*)>/s
Run Code Online (Sandbox Code Playgroud)

它与多行中的 abuttonanchor标记匹配,但不查找是否缺少,analytics-on我该如何检查?

html regex

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

服务器端d3 - 将SVG编码为Base64映像

我正在尝试将D3图表编码为base64图像,以便在HTML电子邮件中使用

到目前为止,我有:

var express = require('express');
var app = express();
var jsdom = require('jsdom');

app.get('/chart', function (request, response) {
    try {
        jsdom.env(
            "<html><body><svg id=\"svg\"></svg></body></html>",
            ['http://d3js.org/d3.v3.min.js'],
            function (err, window) {
                var svg = window.d3.select("svg")
                    .attr("width", 100)
                    .attr("height", 100);

                svg.append("rect")
                    .attr("x", 10)
                    .attr("y", 10)
                    .attr("width", 80)
                    .attr("height", 80)
                    .style("fill", "orange");

                var encoded = ...; // How do I now encode this?

                response.send({
                    "html": window.d3.select("body").html(),
                    "encoded": encoded
                });
            }
        );
    } catch (err) {
        console.error(err);
    }
});

// Run Server
var port = …
Run Code Online (Sandbox Code Playgroud)

javascript svg node.js d3.js

0
推荐指数
2
解决办法
1680
查看次数