当另一个实例使用 PubSubs 时 Jedis 池停止工作

问题描述

我目前正在创建 2 个应该(但不能)并排工作的 Java 程序。 为简单起见,称它们为 S1 和 S2。

S1 是一个简单的 API,用于从/向 redis 拉取或推送数据。为此,我在启动时初始化了一个 JedisPool,然后使用这个池与 redis 进行交互。

S2 是一个使用 PubSub 与 master 实时通信的系统。

创建池:

import numpy as np
import tensorflow as tf
from tensorflow import keras
import pandas as pd
from tensorflow.keras import datasets,layers,models

df = pd.read_csv('/content/drive/MyDrive/centersofallcars.csv')
y = df['Activity']
x = df.drop(['Trajectory','Activity','x THEN y','id','video' ],axis=1)
X_train,X_test,y_train,y_test = train_test_split( x,y,test_size=0.20,random_state=42)
def create_cnn_model():
    model = tf.keras.models.Sequential()
    model.add(layers.Conv2D(32,kernel_size = (5,5),activation='relu'))
    model.add(layers.MaxPooling2D(pool_size=(2,2)))
    model.add(layers.Batchnormalization())
    model.add(layers.Conv2D(64,kernel_size=(3,3),2)))
    model.add(layers.Batchnormalization())
    model.add(layers.Dropout(0.5))
    model.add(layers.Flatten())
    model.add(layers.Dense(64,activation='relu'))
    model.add(layers.Batchnormalization())
    model.add(layers.Dropout(0.5))
    model.add(layers.Dense(32,activation='relu'))
    model.add(layers.Dense(2,activation = 'softmax'))
    
    return model

model = create_cnn_model()
opt=tf.keras.optimizers.SGD(learning_rate=1e-4,momentum=0.9)
model.compile(loss='categorical_crossentropy',optimizer=opt,metrics=['accuracy'])
BATCH_SIZE=64
EPOCHS=100
history=model.fit(X_train,batch_size=BATCH_SIZE,epochs=EPOCHS,verbose=1,validation_data=(X_test,y_test)
         )

稍后使用

private JedisPool jedisPool;
public void startup(){
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxTotal(128);
        jedisPool = new JedisPool(poolConfig,"127.0.0.1",6379,10000);
}

这工作得很好。

为系统 2 创建 pubSub:

    public void set(String key,String value) {
    Jedis jedis = null;
    try {
        jedis = Main.getInstance().getJedisPool().getResource();
        jedis.clientSetname(key);
        jedis.set(key,value);
    } catch (Exception ignored) {
        ignored.printstacktrace();
    } finally {
        jedis.close();
    }
}

现在到具体问题: 一旦我同时启动 S1 和 S2,S1 就会停止工作。 S2 工作正常。 仅使用 S1 时一切正常。

有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)