小编kon*_*nse的帖子

Spring KafkaListener:如何知道何时准备就绪

我有一个简单的 Spring Boot 应用程序,它从 Kafka 读取并写入 Kafka。我写了一个SpringBootTestusing anEmbeddedKafka来测试所有这些。

主要问题是:有时测试失败是因为测试过早发送Kafka消息。这样,在 Spring 应用程序(或者KafkaListener准确地说)准备就绪之前,消息已经写入 Kafka 。由于侦听器从latest偏移量中读取(我不想为我的测试更改任何配置 - 除了 bootstrap.servers),它不会收到该测试中的所有消息。

有谁知道我如何在测试中知道KafkaListener已准备好接收消息?

我能想到的唯一方法是等到/health可用,但我不知道我是否可以确定这意味着KafkaListener完全准备好了。

任何帮助是极大的赞赏!

此致。

spring apache-kafka spring-boot spring-kafka spring-kafka-test

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

MongoDB:更新文档中的字典

我有一个MongoDB文档,可以在字典中保存一些内容:

{
  "id" : 1,
  "occurrences" : {
    "1" : 1,
    "2" : 5,
    "17" : 1,
    "35" : 4
  }
}
Run Code Online (Sandbox Code Playgroud)

我现在想要添加或更新一些条目,例如在事件中添加"12:3",或者将"17"的出现次数更新为2,所以让我们假设我要添加{"12" :3}和{"17":2}到这本词典.它让我发疯,因为我根本无法让它发挥作用.我可以使用数组和所有这些,但我真的想在这个特定的设计中使用它.关于如何解决这个问题的任何想法?我用$ set和$ each等尝试了很多不同的东西.

dictionary upsert mongodb

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

React-Native Firebase:令牌刷新不起作用

我的 react-native-firebase(或 firebase)有一个问题,我的应用程序在 auth 令牌刷新后没有收到触发器。这与 [1] 的问题几乎相同,但他们从未发布过解决方案。

因此,在 Android 手机和 Android 模拟器(不知道 iOS)上,注册、登录和注销都可以完美运行,这意味着听众可以正确地看到我何时执行logout()等操作。但听众永远不会触发当令牌刷新时。

我的第一个问题是:我是否正确地假设onIdTokenChanged-listener 应该在 60 分钟后自动触发而无需执行任何其他操作,例如调用任何 firebase 函数,这样应用程序就坐在那里 60 分钟什么都不做,然后接收事件并更换令牌?

我包含侦听器的主要组件如下所示:

class ReduxAppWrapper extends Component {

  componentDidMount() {
    firebase.auth().onAuthStateChanged((user) => {
        console.log('COMP DID MOUNT: AUTH STATE CHANGED! ' + JSON.stringify(user));
    });
    firebase.auth().onIdTokenChanged((user) => {
        console.log('COMP DID MOUNT: TOKEN CHANGED! ' + JSON.stringify(user));
    });
    firebase.auth().onUserChanged((user) => {
        console.log('COMP DID MOUNT: USER CHANGED! ' + JSON.stringify(user));
    });
  };

  render() {
    return (
      <ReduxProvider store={store}>
        <MenuProvider> …
Run Code Online (Sandbox Code Playgroud)

android firebase react-native react-native-firebase

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