记得上下班打卡 | git大法好,push需谨慎

Commit 98aa0eea authored by 胡佳晨's avatar 胡佳晨

修改 所有消费 自动绑定group

parent c032b792
package com.liquidnet.service.consumer.candy.config; package com.liquidnet.service.consumer.candy.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.candy.receiver.ConsumerCandyCouponBackRdsReceiver; import com.liquidnet.service.consumer.candy.receiver.ConsumerCandyCouponBackRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,55 +12,77 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,55 +12,77 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.CandyQueue.COUPON_BACK; import static com.liquidnet.service.base.constant.MQConst.CandyQueue.COUPON_BACK;
@Configuration @Configuration
public class ConsumerCandyCouponBackRedisStreamConfig extends RedisStreamConfig { public class ConsumerCandyCouponBackRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerCandyCouponBackRdsReceiver consumerCandyCouponBackRdsReceiver; ConsumerCandyCouponBackRdsReceiver consumerCandyCouponBackRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlCandyCouponBack(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(COUPON_BACK.getGroup(), getConsumerName(COUPON_BACK.name() + t)),
StreamOffset.create(COUPON_BACK.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponBackRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlCandyCouponBack0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCandyCouponBack(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlCandyCouponBack1(RedisConnectionFactory factory) { public List<Subscription> subscriptionCouponBack(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlCandyCouponBack(listenerContainer, 1); MQConst.CandyQueue stream = MQConst.CandyQueue.COUPON_BACK;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponBackRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlCandyCouponBack2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlCandyCouponBack(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlCandyCouponBack(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(COUPON_BACK.getGroup(), getConsumerName(COUPON_BACK.name() + t)),
// StreamOffset.create(COUPON_BACK.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponBackRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlCandyCouponBack0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponBack(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCandyCouponBack1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponBack(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCandyCouponBack2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponBack(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.candy.config; package com.liquidnet.service.consumer.candy.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.candy.receiver.ConsumerCandyCouponOrderBackRdsReceiver; import com.liquidnet.service.consumer.candy.receiver.ConsumerCandyCouponOrderBackRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,55 +12,77 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,55 +12,77 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.CandyQueue.COUPON_ORDER_BACK; import static com.liquidnet.service.base.constant.MQConst.CandyQueue.COUPON_ORDER_BACK;
@Configuration @Configuration
public class ConsumerCandyCouponOrderBackRedisStreamConfig extends RedisStreamConfig { public class ConsumerCandyCouponOrderBackRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerCandyCouponOrderBackRdsReceiver consumerCandyCouponOrderBackRdsReceiver; ConsumerCandyCouponOrderBackRdsReceiver consumerCandyCouponOrderBackRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlCandyCouponBack(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(COUPON_ORDER_BACK.getGroup(), getConsumerName(COUPON_ORDER_BACK.name() + t)),
StreamOffset.create(COUPON_ORDER_BACK.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponOrderBackRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlCandyCouponOrderBack0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCandyCouponBack(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlCandyCouponOrderBack1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCandyCouponBack(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlCandyCouponOrderBack2(RedisConnectionFactory factory) { public List<Subscription> subscriptionCouponOrderBack(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlCandyCouponBack(listenerContainer, 2); MQConst.CandyQueue stream = MQConst.CandyQueue.COUPON_ORDER_BACK;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponOrderBackRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
/* -------------------------------------------------------- | */ // /**
// * 缺票登记
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlCandyCouponBack(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(COUPON_ORDER_BACK.getGroup(), getConsumerName(COUPON_ORDER_BACK.name() + t)),
// StreamOffset.create(COUPON_ORDER_BACK.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponOrderBackRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlCandyCouponOrderBack0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponBack(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCandyCouponOrderBack1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponBack(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCandyCouponOrderBack2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponBack(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.candy.config; package com.liquidnet.service.consumer.candy.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.candy.receiver.ConsumerCandyCouponReceiveRdsReceiver; import com.liquidnet.service.consumer.candy.receiver.ConsumerCandyCouponReceiveRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,55 +12,78 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,55 +12,78 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.CandyQueue.COUPON_RECEIVE; import static com.liquidnet.service.base.constant.MQConst.CandyQueue.COUPON_RECEIVE;
@Configuration @Configuration
public class ConsumerCandyCouponReceiveRedisStreamConfig extends RedisStreamConfig { public class ConsumerCandyCouponReceiveRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerCandyCouponReceiveRdsReceiver consumerCandyCouponReceiveRdsReceiver; ConsumerCandyCouponReceiveRdsReceiver consumerCandyCouponReceiveRdsReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlCandyCouponReceive(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(COUPON_RECEIVE.getGroup(), getConsumerName(COUPON_RECEIVE.name() + t)),
StreamOffset.create(COUPON_RECEIVE.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponReceiveRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlCandyCouponReceive0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCandyCouponReceive(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlCandyCouponReceive1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCandyCouponReceive(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlCandyCouponReceive2(RedisConnectionFactory factory) { public List<Subscription> subscriptionCouponReceive(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlCandyCouponReceive(listenerContainer, 2); MQConst.CandyQueue stream = MQConst.CandyQueue.COUPON_RECEIVE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponReceiveRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
/* -------------------------------------------------------- | */ // /**
// * 缺票登记
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlCandyCouponReceive(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(COUPON_RECEIVE.getGroup(), getConsumerName(COUPON_RECEIVE.name() + t)),
// StreamOffset.create(COUPON_RECEIVE.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponReceiveRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlCandyCouponReceive0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponReceive(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCandyCouponReceive1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponReceive(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCandyCouponReceive2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponReceive(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.candy.config; package com.liquidnet.service.consumer.candy.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.candy.receiver.ConsumerCandyCouponUseRdsReceiver; import com.liquidnet.service.consumer.candy.receiver.ConsumerCandyCouponUseRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,56 +12,78 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,56 +12,78 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.CandyQueue.COUPON_USE; import static com.liquidnet.service.base.constant.MQConst.CandyQueue.COUPON_USE;
@Configuration @Configuration
public class ConsumerCandyCouponUseRedisStreamConfig extends RedisStreamConfig { public class ConsumerCandyCouponUseRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerCandyCouponUseRdsReceiver consumerCandyCouponUseRdsReceiver; ConsumerCandyCouponUseRdsReceiver consumerCandyCouponUseRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlCandyCouponUse(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(COUPON_USE.getGroup(), getConsumerName(COUPON_USE.name() + t)),
StreamOffset.create(COUPON_USE.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponUseRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlCandyCouponUse0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCandyCouponUse(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlCandyCouponUse1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCandyCouponUse(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlCandyCouponUse2(RedisConnectionFactory factory) { public List<Subscription> subscriptionCouponUse(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlCandyCouponUse(listenerContainer, 2); MQConst.CandyQueue stream = MQConst.CandyQueue.COUPON_USE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponUseRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
/* -------------------------------------------------------- | */ // /**
// * 缺票登记
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlCandyCouponUse(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(COUPON_USE.getGroup(), getConsumerName(COUPON_USE.name() + t)),
// StreamOffset.create(COUPON_USE.getKey(), ReadOffset.lastConsumed()), consumerCandyCouponUseRdsReceiver
// );
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlCandyCouponUse0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponUse(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCandyCouponUse1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponUse(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCandyCouponUse2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCandyCouponUse(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// /* -------------------------------------------------------- | */
} }
...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerGoblinOrderAGRedisStreamConfig extends RedisStreamConfig { public class ConsumerGoblinOrderAGRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerGoblinOrderAGRdsReceiver consumerGoblinOrderAGRdsReceiver; ConsumerGoblinOrderAGRdsReceiver consumerGoblinOrderAGRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveGoblinOrderAG(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_ORDER_AGAIN.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_ORDER_AGAIN.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_ORDER_AGAIN.getKey(), ReadOffset.lastConsumed()), consumerGoblinOrderAGRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionGoblinOrderAG0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveGoblinOrderAG(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionGoblinOrderAG1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveGoblinOrderAG(listenerContainer, 1); MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_ORDER_AGAIN;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinOrderAGRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionGoblinOrderAG2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveGoblinOrderAG(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveGoblinOrderAG(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_ORDER_AGAIN.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_ORDER_AGAIN.name() + t)),
// StreamOffset.create(MQConst.GoblinQueue.GOBLIN_ORDER_AGAIN.getKey(), ReadOffset.lastConsumed()), consumerGoblinOrderAGRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionGoblinOrderAG0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinOrderAG(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionGoblinOrderAG1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinOrderAG(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionGoblinOrderAG2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinOrderAG(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,49 +12,71 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,49 +12,71 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerGoblinOrderCPRedisStreamConfig extends RedisStreamConfig { public class ConsumerGoblinOrderCPRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerGoblinOrderCPRdsReceiver consumerGoblinOrderCPRdsReceiver; ConsumerGoblinOrderCPRdsReceiver consumerGoblinOrderCPRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 商城订单
*/
private Subscription receiveGoblinOrderCP(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.getKey(), ReadOffset.lastConsumed()), consumerGoblinOrderCPRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/*-------------------------------------- 商城订单 --------------------------------------*/
@Bean
public Subscription subscriptionGoblinOrderCP0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveGoblinOrderCP(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionGoblinOrderCP1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveGoblinOrderCP(listenerContainer, 1); MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinOrderCPRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionGoblinOrderCP2(RedisConnectionFactory factory) { // * 商城订单
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // */
var subscription = receiveGoblinOrderCP(listenerContainer, 2); // private Subscription receiveGoblinOrderCP(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
listenerContainer.start(); // return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.name() + t)),
return subscription; // StreamOffset.create(MQConst.GoblinQueue.GOBLIN_ORDER_CREATE_PAY.getKey(), ReadOffset.lastConsumed()), consumerGoblinOrderCPRdsReceiver);
} // }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /*-------------------------------------- 商城订单 --------------------------------------*/
//
// @Bean
// public Subscription subscriptionGoblinOrderCP0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinOrderCP(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionGoblinOrderCP1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinOrderCP(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionGoblinOrderCP2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinOrderCP(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.kylin.config; package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerKylinSqlOrderPayRdsReceiver; import com.liquidnet.service.consumer.kylin.receiver.ConsumerKylinSqlOrderPayRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,111 +12,133 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,111 +12,133 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_PAY; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_PAY;
@Configuration @Configuration
public class ConsumerKylinSqlOrderPayRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinSqlOrderPayRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinSqlOrderPayRdsReceiver consumerKylinSqlOrderPayRdsReceiver; ConsumerKylinSqlOrderPayRdsReceiver consumerKylinSqlOrderPayRdsReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
/**
* 订单支付
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlOrderPay(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_PAY.getGroup(), getConsumerName(SQL_ORDER_PAY.name() + t)),
StreamOffset.create(SQL_ORDER_PAY.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderPayRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 订单支付 */
@Bean @Bean
public Subscription subscriptionSqlOrderPay0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlOrderPay(listenerContainer, 0); MQConst.KylinQueue stream = MQConst.KylinQueue.SQL_ORDER_PAY;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 5; i++) {
} StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
@Bean Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
public Subscription subscriptionSqlOrderPay1(RedisConnectionFactory factory) { StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderPayRdsReceiver
var listenerContainer = this.buildStreamMessageListenerContainer(factory); ));
var subscription = receiveSqlOrderPay(listenerContainer, 1); listenerContainer.start();
listenerContainer.start(); }
return subscription; return subscriptionList;
} }
// /**
// * 订单支付
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlOrderPay(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_PAY.getGroup(), getConsumerName(SQL_ORDER_PAY.name() + t)),
// StreamOffset.create(SQL_ORDER_PAY.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderPayRdsReceiver);
// }
// //
@Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
public Subscription subscriptionSqlOrderPay2(RedisConnectionFactory factory) { //
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // /* -------------------------------------------------------- | 订单支付 */
var subscription = receiveSqlOrderPay(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOrderPay3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderPay(listenerContainer, 3);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOrderPay4(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderPay(listenerContainer, 4);
listenerContainer.start();
return subscription;
}
// //
// @Bean // @Bean
// public Subscription subscriptionSqlOrderPay5(RedisConnectionFactory factory) { // public Subscription subscriptionSqlOrderPay0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderPay(listenerContainer, 5); // var subscription = receiveSqlOrderPay(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
// //
// @Bean // @Bean
// public Subscription subscriptionSqlOrderPay6(RedisConnectionFactory factory) { // public Subscription subscriptionSqlOrderPay1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderPay(listenerContainer, 6); // var subscription = receiveSqlOrderPay(listenerContainer, 1);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
// ////
// @Bean // @Bean
// public Subscription subscriptionSqlOrderPay7(RedisConnectionFactory factory) { // public Subscription subscriptionSqlOrderPay2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderPay(listenerContainer, 7); // var subscription = receiveSqlOrderPay(listenerContainer, 2);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
// //
// @Bean // @Bean
// public Subscription subscriptionSqlOrderPay8(RedisConnectionFactory factory) { // public Subscription subscriptionSqlOrderPay3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderPay(listenerContainer, 8); // var subscription = receiveSqlOrderPay(listenerContainer, 3);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
// //
// @Bean // @Bean
// public Subscription subscriptionSqlOrderPay9(RedisConnectionFactory factory) { // public Subscription subscriptionSqlOrderPay4(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderPay(listenerContainer, 9); // var subscription = receiveSqlOrderPay(listenerContainer, 4);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
////
/* -------------------------------------------------------- | */ //// @Bean
//// public Subscription subscriptionSqlOrderPay5(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderPay(listenerContainer, 5);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlOrderPay6(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderPay(listenerContainer, 6);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlOrderPay7(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderPay(listenerContainer, 7);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlOrderPay8(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderPay(listenerContainer, 8);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlOrderPay9(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderPay(listenerContainer, 9);
//// listenerContainer.start();
//// return subscription;
//// }
//
// /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.kylin.config; package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerKylinSqlOrderRefundRdsReceiver; import com.liquidnet.service.consumer.kylin.receiver.ConsumerKylinSqlOrderRefundRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_REFUND; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_REFUND;
@Configuration @Configuration
public class ConsumerKylinSqlOrderRefundRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinSqlOrderRefundRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinSqlOrderRefundRdsReceiver consumerKylinSqlOrderRefundRdsReceiver; ConsumerKylinSqlOrderRefundRdsReceiver consumerKylinSqlOrderRefundRdsReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
/**
* 订单申请退款
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlOrderRefund(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_REFUND.getGroup(), getConsumerName(SQL_ORDER_REFUND.name() + t)),
StreamOffset.create(SQL_ORDER_REFUND.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderRefundRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 订单申请退款 */
@Bean
public Subscription subscriptionSqlOrderRefund0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderRefund(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOrderRefund1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderRefund(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOrderRefund2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderRefund(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOrderRefund3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderRefund(listenerContainer, 3);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlOrderRefund4(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlOrderRefund(listenerContainer, 4); MQConst.KylinQueue stream = MQConst.KylinQueue.SQL_ORDER_REFUND;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 5; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderRefundRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
/* -------------------------------------------------------- | */ // * 订单申请退款
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlOrderRefund(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_REFUND.getGroup(), getConsumerName(SQL_ORDER_REFUND.name() + t)),
// StreamOffset.create(SQL_ORDER_REFUND.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderRefundRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 订单申请退款 */
//
// @Bean
// public Subscription subscriptionSqlOrderRefund0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderRefund(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOrderRefund1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderRefund(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOrderRefund2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderRefund(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOrderRefund3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderRefund(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOrderRefund4(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderRefund(listenerContainer, 4);
// listenerContainer.start();
// return subscription;
// }
//
// /* -------------------------------------------------------- | */
} }
...@@ -12,53 +12,74 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,74 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerGoblinSelfMarketRedisStreamConfig extends RedisStreamConfig { public class ConsumerGoblinSelfMarketRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerGoblinSelfMarketRdsReceiver consumerGoblinSelfMarketRdsReceiver; ConsumerGoblinSelfMarketRdsReceiver consumerGoblinSelfMarketRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveGoblinSelfMarket(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_SELF_MARKET.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_SELF_MARKET.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_SELF_MARKET.getKey(), ReadOffset.lastConsumed()), consumerGoblinSelfMarketRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean @Bean
public Subscription subscriptionGoblinSelfMarket0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveGoblinSelfMarket(listenerContainer, 0); MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_SELF_MARKET;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinSelfMarketRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
// @Bean // * 缺票登记
// public Subscription subscriptionGoblinSelfMarket1(RedisConnectionFactory factory) { // *
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // * @param listenerContainer
// var subscription = receiveGoblinSelfMarket(listenerContainer, 1); // * @param t
// listenerContainer.start(); // * @return
// return subscription; // */
// private Subscription receiveGoblinSelfMarket(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_SELF_MARKET.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_SELF_MARKET.name() + t)),
// StreamOffset.create(MQConst.GoblinQueue.GOBLIN_SELF_MARKET.getKey(), ReadOffset.lastConsumed()), consumerGoblinSelfMarketRdsReceiver);
// } // }
// //
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean // @Bean
// public Subscription subscriptionGoblinSelfMarket2(RedisConnectionFactory factory) { // public Subscription subscriptionGoblinSelfMarket0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinSelfMarket(listenerContainer, 2); // var subscription = receiveGoblinSelfMarket(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
/* -------------------------------------------------------- | */ //// @Bean
//// public Subscription subscriptionGoblinSelfMarket1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinSelfMarket(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionGoblinSelfMarket2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinSelfMarket(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
// /* -------------------------------------------------------- | */
} }
...@@ -12,64 +12,86 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,64 +12,86 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerGoblinShopCartStreamConfig extends RedisStreamConfig { public class ConsumerGoblinShopCartStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerGoblinShopCartReceiver consumerGoblinShopCartReceiver; ConsumerGoblinShopCartReceiver consumerGoblinShopCartReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 购物车
* @return Subscription
*/
private Subscription receiveSqlShopCart(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_SHOP_CART.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_SHOP_CART.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_SHOP_CART.getKey(), ReadOffset.lastConsumed()), consumerGoblinShopCartReceiver);
}
/* -------------------------------------------------------- | */
@Bean @Bean
public Subscription subscriptionSqlShopCart0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlShopCart(listenerContainer, 0); MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_SHOP_CART;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinShopCartReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionSqlShopCart1(RedisConnectionFactory factory) { // * 购物车
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // * @return Subscription
// var subscription = receiveSqlShopCart(listenerContainer, 1); // */
// listenerContainer.start(); // private Subscription receiveSqlShopCart(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return subscription; // return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_SHOP_CART.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_SHOP_CART.name() + t)),
// StreamOffset.create(MQConst.GoblinQueue.GOBLIN_SHOP_CART.getKey(), ReadOffset.lastConsumed()), consumerGoblinShopCartReceiver);
// } // }
// //
// @Bean // /* -------------------------------------------------------- | */
// public Subscription subscriptionSqlShopCart2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlShopCart(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionSqlShopCart3(RedisConnectionFactory factory) { // public Subscription subscriptionSqlShopCart0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlShopCart(listenerContainer, 3); // var subscription = receiveSqlShopCart(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
// //
// @Bean //// @Bean
// public Subscription subscriptionSqlShopCart4(RedisConnectionFactory factory) { //// public Subscription subscriptionSqlShopCart1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); //// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlShopCart(listenerContainer, 4); //// var subscription = receiveSqlShopCart(listenerContainer, 1);
// listenerContainer.start(); //// listenerContainer.start();
// return subscription; //// return subscription;
// } //// }
////
//// @Bean
//// public Subscription subscriptionSqlShopCart2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlShopCart(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlShopCart3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlShopCart(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlShopCart4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlShopCart(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
......
...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerGoblinStoneMarketRedisStreamConfig extends RedisStreamConfig { public class ConsumerGoblinStoneMarketRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerGoblinStoreMarketRdsReceiver consumerGoblinStoreMarketRdsReceiver; ConsumerGoblinStoreMarketRdsReceiver consumerGoblinStoreMarketRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveGoblinStoreMarket(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_STORE_MARKET.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_STORE_MARKET.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_STORE_MARKET.getKey(), ReadOffset.lastConsumed()), consumerGoblinStoreMarketRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean @Bean
public Subscription subscriptionGoblinStoreMarket0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveGoblinStoreMarket(listenerContainer, 0); MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_STORE_MARKET;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinStoreMarketRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionGoblinStoreMarket1(RedisConnectionFactory factory) { // * 缺票登记
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveGoblinStoreMarket(listenerContainer, 1); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveGoblinStoreMarket(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_STORE_MARKET.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_STORE_MARKET.name() + t)),
// StreamOffset.create(MQConst.GoblinQueue.GOBLIN_STORE_MARKET.getKey(), ReadOffset.lastConsumed()), consumerGoblinStoreMarketRdsReceiver);
// } // }
// //
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean // @Bean
// public Subscription subscriptionGoblinStoreMarket2(RedisConnectionFactory factory) { // public Subscription subscriptionGoblinStoreMarket0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinStoreMarket(listenerContainer, 2); // var subscription = receiveGoblinStoreMarket(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionGoblinStoreMarket1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinStoreMarket(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionGoblinStoreMarket2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinStoreMarket(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,53 +12,74 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,74 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerGoblinStoreOrderRedisStreamConfig extends RedisStreamConfig { public class ConsumerGoblinStoreOrderRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerGoblinStoreOrderRdsReceiver consumerGoblinStoreOrderRdsReceiver; ConsumerGoblinStoreOrderRdsReceiver consumerGoblinStoreOrderRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveGoblinStoreOrder(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.getKey(), ReadOffset.lastConsumed()), consumerGoblinStoreOrderRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean @Bean
public Subscription subscriptionGoblinStoreOrder0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveGoblinStoreOrder(listenerContainer, 0); MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinStoreOrderRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
// @Bean // * 缺票登记
// public Subscription subscriptionGoblinStoreOrder1(RedisConnectionFactory factory) { // *
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // * @param listenerContainer
// var subscription = receiveGoblinStoreOrder(listenerContainer, 1); // * @param t
// listenerContainer.start(); // * @return
// return subscription; // */
// private Subscription receiveGoblinStoreOrder(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.name() + t)),
// StreamOffset.create(MQConst.GoblinQueue.GOBLIN_STORE_ORDER_OPERA.getKey(), ReadOffset.lastConsumed()), consumerGoblinStoreOrderRdsReceiver);
// } // }
// //
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean // @Bean
// public Subscription subscriptionGoblinStoreOrder2(RedisConnectionFactory factory) { // public Subscription subscriptionGoblinStoreOrder0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinStoreOrder(listenerContainer, 2); // var subscription = receiveGoblinStoreOrder(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionGoblinStoreOrder1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinStoreOrder(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionGoblinStoreOrder2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinStoreOrder(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerGoblinUserOrderRedisStreamConfig extends RedisStreamConfig { public class ConsumerGoblinUserOrderRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerGoblinUserOrderRdsReceiver consumerGoblinUserOrderRdsReceiver; ConsumerGoblinUserOrderRdsReceiver consumerGoblinUserOrderRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveGoblinUserOrder(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getKey(), ReadOffset.lastConsumed()), consumerGoblinUserOrderRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean @Bean
public Subscription subscriptionGoblinUserOrder0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveGoblinUserOrder(listenerContainer, 0); MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinUserOrderRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionGoblinUserOrder1(RedisConnectionFactory factory) { // * 缺票登记
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveGoblinUserOrder(listenerContainer, 1); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveGoblinUserOrder(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.name() + t)),
// StreamOffset.create(MQConst.GoblinQueue.GOBLIN_USER_ORDER_OPERA.getKey(), ReadOffset.lastConsumed()), consumerGoblinUserOrderRdsReceiver);
// } // }
// //
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean // @Bean
// public Subscription subscriptionGoblinUserOrder2(RedisConnectionFactory factory) { // public Subscription subscriptionGoblinUserOrder0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinUserOrder(listenerContainer, 2); // var subscription = receiveGoblinUserOrder(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionGoblinUserOrder1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinUserOrder(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionGoblinUserOrder2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinUserOrder(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerGoblinXlsRedisStreamConfig extends RedisStreamConfig { public class ConsumerGoblinXlsRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerGoblinXlsRdsReceiver consumerGoblinXlsRdsReceiver; ConsumerGoblinXlsRdsReceiver consumerGoblinXlsRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveGoblinXls(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_XLS_OPERA.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_XLS_OPERA.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.GOBLIN_XLS_OPERA.getKey(), ReadOffset.lastConsumed()), consumerGoblinXlsRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean @Bean
public Subscription subscriptionGoblinXls0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveGoblinXls(listenerContainer, 0); MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_XLS_OPERA;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 2; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinXlsRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionGoblinXls1(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveGoblinXls(listenerContainer, 1); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveGoblinXls(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.GOBLIN_XLS_OPERA.getGroup(), getConsumerName(MQConst.GoblinQueue.GOBLIN_XLS_OPERA.name() + t)),
// StreamOffset.create(MQConst.GoblinQueue.GOBLIN_XLS_OPERA.getKey(), ReadOffset.lastConsumed()), consumerGoblinXlsRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
// //
// @Bean // @Bean
// public Subscription subscriptionGoblinXls2(RedisConnectionFactory factory) { // public Subscription subscriptionGoblinXls0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinXls(listenerContainer, 2); // var subscription = receiveGoblinXls(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
/* -------------------------------------------------------- | */ // @Bean
// public Subscription subscriptionGoblinXls1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveGoblinXls(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
////
//// @Bean
//// public Subscription subscriptionGoblinXls2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveGoblinXls(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
// /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.slowly.config; package com.liquidnet.service.consumer.slowly.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinTransferOverTimeRdsReceiver; import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinTransferOverTimeRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_TRANSFER_OVERTIME; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_TRANSFER_OVERTIME;
@Configuration @Configuration
public class ConsumerKylinOptTransferOverTimeRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinOptTransferOverTimeRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinTransferOverTimeRdsReceiver consumerKylinTransferOverTimeRdsReceiver; ConsumerKylinTransferOverTimeRdsReceiver consumerKylinTransferOverTimeRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 验票更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveTransferOverTimeResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_TRANSFER_OVERTIME.getGroup(), getConsumerName(SQL_TRANSFER_OVERTIME.name() + t)),
StreamOffset.create(SQL_TRANSFER_OVERTIME.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferOverTimeRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 验票更新 */
@Bean
public Subscription subscriptionReceiveTransferOverTime0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveTransferOverTimeResult(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveTransferOverTime1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveTransferOverTimeResult(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionReceiveTransferOverTime2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveTransferOverTimeResult(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionReceiveTransferOverTime3(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveTransferOverTimeResult(listenerContainer, 3); MQConst.KylinQueue stream = SQL_TRANSFER_OVERTIME;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 5; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferOverTimeRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionReceiveTransferOverTime4(RedisConnectionFactory factory) { // * 验票更新
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveTransferOverTimeResult(listenerContainer, 4); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveTransferOverTimeResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_TRANSFER_OVERTIME.getGroup(), getConsumerName(SQL_TRANSFER_OVERTIME.name() + t)),
// StreamOffset.create(SQL_TRANSFER_OVERTIME.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferOverTimeRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 验票更新 */
//
// @Bean
// public Subscription subscriptionReceiveTransferOverTime0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferOverTimeResult(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionReceiveTransferOverTime1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferOverTimeResult(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionReceiveTransferOverTime2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferOverTimeResult(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionReceiveTransferOverTime3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferOverTimeResult(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionReceiveTransferOverTime4(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferOverTimeResult(listenerContainer, 4);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.slowly.config; package com.liquidnet.service.consumer.slowly.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinOrderRefundExpressRdsReceiver; import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinOrderRefundExpressRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_REFUND_EXPRESS; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_REFUND_EXPRESS;
@Configuration @Configuration
public class ConsumerKylinOrderRefundExpressRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinOrderRefundExpressRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinOrderRefundExpressRdsReceiver consumerKylinOrderRefundExpressRdsReceiver; ConsumerKylinOrderRefundExpressRdsReceiver consumerKylinOrderRefundExpressRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 用户退款发快递
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlOrderRefundExpress(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_REFUND_EXPRESS.getGroup(), getConsumerName(SQL_ORDER_REFUND_EXPRESS.name() + t)),
StreamOffset.create(SQL_ORDER_REFUND_EXPRESS.getKey(), ReadOffset.lastConsumed()), consumerKylinOrderRefundExpressRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
@Bean
public Subscription subscriptionOrderRefundExpress0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderRefundExpress(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionOrderRefundExpress1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlOrderRefundExpress(listenerContainer, 1); MQConst.KylinQueue stream = SQL_ORDER_REFUND_EXPRESS;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinOrderRefundExpressRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionOrderRefundExpress2(RedisConnectionFactory factory) { // * 用户退款发快递
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlOrderRefundExpress(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlOrderRefundExpress(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_REFUND_EXPRESS.getGroup(), getConsumerName(SQL_ORDER_REFUND_EXPRESS.name() + t)),
// StreamOffset.create(SQL_ORDER_REFUND_EXPRESS.getKey(), ReadOffset.lastConsumed()), consumerKylinOrderRefundExpressRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// @Bean
// public Subscription subscriptionOrderRefundExpress0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderRefundExpress(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionOrderRefundExpress1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderRefundExpress(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionOrderRefundExpress2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderRefundExpress(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
\ No newline at end of file
...@@ -12,109 +12,131 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,109 +12,131 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerKylinSmsSenderRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinSmsSenderRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinSmsNoticeRdsReceiver consumerKylinSmsNoticeRdsReceiver; ConsumerKylinSmsNoticeRdsReceiver consumerKylinSmsNoticeRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 短信通知
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlURegister(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.AdamQueue.SMS_NOTICE.getGroup(), getConsumerName(MQConst.AdamQueue.SMS_NOTICE.name() + t)),
StreamOffset.create(MQConst.AdamQueue.SMS_NOTICE.getKey(), ReadOffset.lastConsumed()), consumerKylinSmsNoticeRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 短信通知 */
@Bean
public Subscription subscriptionSmsNotice0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlURegister(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSmsNotice1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlURegister(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSmsNotice2(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlURegister(listenerContainer, 2); MQConst.AdamQueue stream = MQConst.AdamQueue.SMS_NOTICE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinSmsNoticeRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionSmsNotice3(RedisConnectionFactory factory) { // * 短信通知
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveSqlURegister(listenerContainer, 3); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveSqlURegister(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.AdamQueue.SMS_NOTICE.getGroup(), getConsumerName(MQConst.AdamQueue.SMS_NOTICE.name() + t)),
// StreamOffset.create(MQConst.AdamQueue.SMS_NOTICE.getKey(), ReadOffset.lastConsumed()), consumerKylinSmsNoticeRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionSmsNotice4(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 4);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // /* -------------------------------------------------------- | 短信通知 */
// public Subscription subscriptionSmsNotice5(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 5);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionSmsNotice6(RedisConnectionFactory factory) { // public Subscription subscriptionSmsNotice0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 6); // var subscription = receiveSqlURegister(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
// //
// @Bean // @Bean
// public Subscription subscriptionSmsNotice7(RedisConnectionFactory factory) { // public Subscription subscriptionSmsNotice1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 7); // var subscription = receiveSqlURegister(listenerContainer, 1);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
// //
// @Bean // @Bean
// public Subscription subscriptionSmsNotice8(RedisConnectionFactory factory) { // public Subscription subscriptionSmsNotice2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 8); // var subscription = receiveSqlURegister(listenerContainer, 2);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
// //
// @Bean //// @Bean
// public Subscription subscriptionSmsNotice9(RedisConnectionFactory factory) { //// public Subscription subscriptionSmsNotice3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); //// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 9); //// var subscription = receiveSqlURegister(listenerContainer, 3);
// listenerContainer.start(); //// listenerContainer.start();
// return subscription; //// return subscription;
// } //// }
////
//// @Bean
//// public Subscription subscriptionSmsNotice4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlURegister(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSmsNotice5(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlURegister(listenerContainer, 5);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSmsNotice6(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlURegister(listenerContainer, 6);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSmsNotice7(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlURegister(listenerContainer, 7);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSmsNotice8(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlURegister(listenerContainer, 8);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSmsNotice9(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlURegister(listenerContainer, 9);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.slowly.config; package com.liquidnet.service.consumer.slowly.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinSqlOrderWithdrawRdsReceiver; import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinSqlOrderWithdrawRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_WITHDRAW; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_WITHDRAW;
@Configuration @Configuration
public class ConsumerKylinSqlOrderWithdrawRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinSqlOrderWithdrawRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinSqlOrderWithdrawRdsReceiver consumerKylinSqlOrderWithdrawRdsReceiver; ConsumerKylinSqlOrderWithdrawRdsReceiver consumerKylinSqlOrderWithdrawRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 订单申请撤回
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlOrderWithdraw(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_WITHDRAW.getGroup(), getConsumerName(SQL_ORDER_WITHDRAW.name() + t)),
StreamOffset.create(SQL_ORDER_WITHDRAW.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderWithdrawRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 订单申请撤回 */
@Bean @Bean
public Subscription subscriptionSqlOrderWithdraw0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlOrderWithdraw(listenerContainer, 0); MQConst.KylinQueue stream = SQL_ORDER_WITHDRAW;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderWithdrawRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionSqlOrderWithdraw1(RedisConnectionFactory factory) { // * 订单申请撤回
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveSqlOrderWithdraw(listenerContainer, 1); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveSqlOrderWithdraw(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_WITHDRAW.getGroup(), getConsumerName(SQL_ORDER_WITHDRAW.name() + t)),
// StreamOffset.create(SQL_ORDER_WITHDRAW.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOrderWithdrawRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionSqlOrderWithdraw2(RedisConnectionFactory factory) { //
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // /* -------------------------------------------------------- | 订单申请撤回 */
// var subscription = receiveSqlOrderWithdraw(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// @Bean
// public Subscription subscriptionSqlOrderWithdraw3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderWithdraw(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionSqlOrderWithdraw4(RedisConnectionFactory factory) { // public Subscription subscriptionSqlOrderWithdraw0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOrderWithdraw(listenerContainer, 4); // var subscription = receiveSqlOrderWithdraw(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionSqlOrderWithdraw1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderWithdraw(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlOrderWithdraw2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderWithdraw(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
//// @Bean
//// public Subscription subscriptionSqlOrderWithdraw3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderWithdraw(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlOrderWithdraw4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlOrderWithdraw(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.slowly.config; package com.liquidnet.service.consumer.slowly.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinSqlPerformanceLackRdsReceiver; import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinSqlPerformanceLackRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,39 +12,61 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,39 +12,61 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_PERFORMANCE_LACK; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_PERFORMANCE_LACK;
@Configuration @Configuration
public class ConsumerKylinSqlPerformanceLackRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinSqlPerformanceLackRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinSqlPerformanceLackRdsReceiver consumerKylinSqlPerformanceLackRdsReceiver; ConsumerKylinSqlPerformanceLackRdsReceiver consumerKylinSqlPerformanceLackRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlPerformanceLack(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_PERFORMANCE_LACK.getGroup(), getConsumerName(SQL_PERFORMANCE_LACK.name() + t)),
StreamOffset.create(SQL_PERFORMANCE_LACK.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlPerformanceLackRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean @Bean
public Subscription subscriptionSqlPerformanceLack0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlPerformanceLack(listenerContainer, 0); MQConst.KylinQueue stream = SQL_PERFORMANCE_LACK;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlPerformanceLackRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
// * 缺票登记
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlPerformanceLack(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_PERFORMANCE_LACK.getGroup(), getConsumerName(SQL_PERFORMANCE_LACK.name() + t)),
// StreamOffset.create(SQL_PERFORMANCE_LACK.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlPerformanceLackRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlPerformanceLack0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlPerformanceLack(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.slowly.config; package com.liquidnet.service.consumer.slowly.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinSqlStationRdsReceiver; import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinSqlStationRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,9 +12,13 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,9 +12,13 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_STATION; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_STATION;
@Configuration @Configuration
...@@ -21,61 +26,81 @@ public class ConsumerKylinSqlStationRedisStreamConfig extends RedisStreamConfig ...@@ -21,61 +26,81 @@ public class ConsumerKylinSqlStationRedisStreamConfig extends RedisStreamConfig
@Autowired @Autowired
ConsumerKylinSqlStationRdsReceiver consumerKylinSqlStationRdsReceiver; ConsumerKylinSqlStationRdsReceiver consumerKylinSqlStationRdsReceiver;
/** @Autowired
* 验票更新 StringRedisTemplate stringRedisTemplate;
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlStation(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_STATION.getGroup(), getConsumerName(SQL_STATION.name() + t)),
StreamOffset.create(SQL_STATION.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlStationRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 验票更新 */
@Bean @Bean
public Subscription subscriptionSqlStation0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlStation(listenerContainer, 0); MQConst.KylinQueue stream = SQL_STATION;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlStationRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean
// public Subscription subscriptionSqlStation1(RedisConnectionFactory factory) { // /**
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // * 验票更新
// var subscription = receiveSqlStation(listenerContainer, 1); // *
// listenerContainer.start(); // * @param listenerContainer
// return subscription; // * @param t
// * @return
// */
// private Subscription receiveSqlStation(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_STATION.getGroup(), getConsumerName(SQL_STATION.name() + t)),
// StreamOffset.create(SQL_STATION.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlStationRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionSqlStation2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStation(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // /* -------------------------------------------------------- | 验票更新 */
// public Subscription subscriptionSqlStation3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStation(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionSqlStation4(RedisConnectionFactory factory) { // public Subscription subscriptionSqlStation0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStation(listenerContainer, 4); // var subscription = receiveSqlStation(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionSqlStation1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlStation(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlStation2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlStation(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlStation3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlStation(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionSqlStation4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlStation(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.slowly.config; package com.liquidnet.service.consumer.slowly.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinTransferRdsReceiver; import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinTransferRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_TRANSFER; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_TRANSFER;
@Configuration @Configuration
public class ConsumerKylinSqlTransferRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinSqlTransferRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinTransferRdsReceiver consumerKylinTransferRdsReceiver; ConsumerKylinTransferRdsReceiver consumerKylinTransferRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 验票更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveTransfer(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_TRANSFER.getGroup(), getConsumerName(SQL_TRANSFER.name() + t)),
StreamOffset.create(SQL_TRANSFER.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 验票更新 */
@Bean @Bean
public Subscription subscriptionReceiveTransfer0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveTransfer(listenerContainer, 0); MQConst.KylinQueue stream = SQL_TRANSFER;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionReceiveTransfer1(RedisConnectionFactory factory) { // * 验票更新
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveTransfer(listenerContainer, 1); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveTransfer(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_TRANSFER.getGroup(), getConsumerName(SQL_TRANSFER.name() + t)),
// StreamOffset.create(SQL_TRANSFER.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionReceiveTransfer2(RedisConnectionFactory factory) { //
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // /* -------------------------------------------------------- | 验票更新 */
// var subscription = receiveTransfer(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// @Bean
// public Subscription subscriptionReceiveTransfer3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransfer(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionReceiveTransfer4(RedisConnectionFactory factory) { // public Subscription subscriptionReceiveTransfer0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransfer(listenerContainer, 4); // var subscription = receiveTransfer(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionReceiveTransfer1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransfer(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveTransfer2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransfer(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
//// @Bean
//// public Subscription subscriptionReceiveTransfer3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransfer(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveTransfer4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransfer(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.slowly.config; package com.liquidnet.service.consumer.slowly.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinTransferResultRdsReceiver; import com.liquidnet.service.consumer.slowly.receiver.ConsumerKylinTransferResultRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,71 +12,93 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_TRANSFER_RESULT; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_TRANSFER_RESULT;
@Configuration @Configuration
public class ConsumerKylinSqlTransferResultRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinSqlTransferResultRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinTransferResultRdsReceiver consumerKylinTransferResultRdsReceiver; ConsumerKylinTransferResultRdsReceiver consumerKylinTransferResultRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 验票更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_TRANSFER_RESULT.getGroup(), getConsumerName(SQL_TRANSFER_RESULT.name() + t)),
StreamOffset.create(SQL_TRANSFER_RESULT.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferResultRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 验票更新 */
@Bean @Bean
public Subscription subscriptionReceiveTransferResult0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveTransferResult(listenerContainer, 0); MQConst.KylinQueue stream = SQL_TRANSFER_RESULT;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferResultRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionReceiveTransferResult1(RedisConnectionFactory factory) { // * 验票更新
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveTransferResult(listenerContainer, 1); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_TRANSFER_RESULT.getGroup(), getConsumerName(SQL_TRANSFER_RESULT.name() + t)),
// StreamOffset.create(SQL_TRANSFER_RESULT.getKey(), ReadOffset.lastConsumed()), consumerKylinTransferResultRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionReceiveTransferResult2(RedisConnectionFactory factory) { //
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // /* -------------------------------------------------------- | 验票更新 */
// var subscription = receiveTransferResult(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// @Bean
// public Subscription subscriptionReceiveTransferResult3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionReceiveTransferResult4(RedisConnectionFactory factory) { // public Subscription subscriptionReceiveTransferResult0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 4); // var subscription = receiveTransferResult(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
/* -------------------------------------------------------- | */ //// @Bean
//// public Subscription subscriptionReceiveTransferResult1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveTransferResult2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
//// @Bean
//// public Subscription subscriptionReceiveTransferResult3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveTransferResult4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
//
// /* -------------------------------------------------------- | */
} }
...@@ -12,69 +12,91 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,69 +12,91 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerSlimeFieldRedisStreamConfig extends RedisStreamConfig { public class ConsumerSlimeFieldRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSlimeFieldRdsReceiver consumerSlimeFieldRdsReceiver; ConsumerSlimeFieldRdsReceiver consumerSlimeFieldRdsReceiver;
/** @Autowired
* 场地相关更新 StringRedisTemplate stringRedisTemplate;
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlField(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_FIELD.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_FIELD.name() + t)),
StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_FIELD.getKey(), ReadOffset.lastConsumed()), consumerSlimeFieldRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 场地相关更新 */
@Bean @Bean
public Subscription subscriptionReceiveSqlField0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlField(listenerContainer, 0); MQConst.SlimeQueue stream = MQConst.SlimeQueue.SQL_SLIME_FIELD;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerSlimeFieldRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
// @Bean // * 场地相关更新
// public Subscription subscriptionReceiveSqlField1(RedisConnectionFactory factory) { // *
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // * @param listenerContainer
// var subscription = receiveSqlField(listenerContainer, 1); // * @param t
// listenerContainer.start(); // * @return
// return subscription; // */
// private Subscription receiveSqlField(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_FIELD.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_FIELD.name() + t)),
// StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_FIELD.getKey(), ReadOffset.lastConsumed()), consumerSlimeFieldRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionReceiveSqlField2(RedisConnectionFactory factory) { //
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // /* -------------------------------------------------------- | 场地相关更新 */
// var subscription = receiveSqlField(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// @Bean
// public Subscription subscriptionReceiveSqlField3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlField(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionReceiveSqlField4(RedisConnectionFactory factory) { // public Subscription subscriptionReceiveSqlField0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlField(listenerContainer, 4); // var subscription = receiveSqlField(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
/* -------------------------------------------------------- | */ //// @Bean
//// public Subscription subscriptionReceiveSqlField1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlField(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveSqlField2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlField(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
//// @Bean
//// public Subscription subscriptionReceiveSqlField3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlField(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveSqlField4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlField(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
//
// /* -------------------------------------------------------- | */
} }
...@@ -12,13 +12,35 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,13 +12,35 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerSlimeLineRedisStreamConfig extends RedisStreamConfig { public class ConsumerSlimeLineRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSlimeLineRdsReceiver consumerSlimeLineRdsReceiver; ConsumerSlimeLineRdsReceiver consumerSlimeLineRdsReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
@Bean
public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
List<Subscription> subscriptionList = new ArrayList<>();
MQConst.SlimeQueue stream = MQConst.SlimeQueue.SQL_SLIME_LINE;
this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerSlimeLineRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
}
/** /**
* 验票更新 * 验票更新
......
...@@ -12,69 +12,92 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,69 +12,92 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerSlimePerformanceInsertRedisStreamConfig extends RedisStreamConfig { public class ConsumerSlimePerformanceInsertRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSlimePerformanceInsertRdsReceiver consumerSlimePerformanceInsertRdsReceiver; ConsumerSlimePerformanceInsertRdsReceiver consumerSlimePerformanceInsertRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 验票更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_INSERT.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_INSERT.name() + t)),
StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSlimePerformanceInsertRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 验票更新 */
@Bean @Bean
public Subscription subscriptionReceivePInsert0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveTransferResult(listenerContainer, 0); MQConst.SlimeQueue stream = MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_INSERT;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerSlimePerformanceInsertRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean
// public Subscription subscriptionReceivePInsert1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionReceivePInsert2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// @Bean // /**
// public Subscription subscriptionReceivePInsert3(RedisConnectionFactory factory) { // * 验票更新
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveTransferResult(listenerContainer, 3); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_INSERT.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_INSERT.name() + t)),
// StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSlimePerformanceInsertRdsReceiver);
// } // }
// //
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 验票更新 */
//
// @Bean // @Bean
// public Subscription subscriptionReceivePInsert4(RedisConnectionFactory factory) { // public Subscription subscriptionReceivePInsert0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 4); // var subscription = receiveTransferResult(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionReceivePInsert1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceivePInsert2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
//// @Bean
//// public Subscription subscriptionReceivePInsert3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceivePInsert4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,69 +12,91 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,69 +12,91 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerSlimePerformanceRedisStreamConfig extends RedisStreamConfig { public class ConsumerSlimePerformanceRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSlimePerformanceRdsReceiver consumerSlimePerformanceRdsReceiver; ConsumerSlimePerformanceRdsReceiver consumerSlimePerformanceRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 验票更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_UPDATE.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_UPDATE.name() + t)),
StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_UPDATE.getKey(), ReadOffset.lastConsumed()), consumerSlimePerformanceRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 验票更新 */
@Bean @Bean
public Subscription subscriptionReceivePerformance0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveTransferResult(listenerContainer, 0); MQConst.SlimeQueue stream = MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_UPDATE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerSlimePerformanceRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionReceivePerformance1(RedisConnectionFactory factory) { // * 验票更新
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveTransferResult(listenerContainer, 1); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_UPDATE.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_UPDATE.name() + t)),
// StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_PERFORMANCE_UPDATE.getKey(), ReadOffset.lastConsumed()), consumerSlimePerformanceRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionReceivePerformance2(RedisConnectionFactory factory) { //
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // /* -------------------------------------------------------- | 验票更新 */
// var subscription = receiveTransferResult(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// @Bean
// public Subscription subscriptionReceivePerformance3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionReceivePerformance4(RedisConnectionFactory factory) { // public Subscription subscriptionReceivePerformance0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 4); // var subscription = receiveTransferResult(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionReceivePerformance1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceivePerformance2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
//// @Bean
//// public Subscription subscriptionReceivePerformance3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceivePerformance4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,69 +12,91 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,69 +12,91 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerSlimeSponsorRedisStreamConfig extends RedisStreamConfig { public class ConsumerSlimeSponsorRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSlimeSponsorRdsReceiver consumerSlimeSponsorRdsReceiver; ConsumerSlimeSponsorRdsReceiver consumerSlimeSponsorRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 主办相关更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlSponsor(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_SPONSOR.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_SPONSOR.name() + t)),
StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_SPONSOR.getKey(), ReadOffset.lastConsumed()), consumerSlimeSponsorRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 主办相关更新 */
@Bean @Bean
public Subscription subscriptionReceiveSqlSponsor0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlSponsor(listenerContainer, 0); MQConst.SlimeQueue stream = MQConst.SlimeQueue.SQL_SLIME_SPONSOR;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerSlimeSponsorRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionReceiveSqlSponsor1(RedisConnectionFactory factory) { // * 主办相关更新
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveSqlSponsor(listenerContainer, 1); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveSqlSponsor(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_SPONSOR.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_SPONSOR.name() + t)),
// StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_SPONSOR.getKey(), ReadOffset.lastConsumed()), consumerSlimeSponsorRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionReceiveSqlSponsor2(RedisConnectionFactory factory) { //
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // /* -------------------------------------------------------- | 主办相关更新 */
// var subscription = receiveSqlSponsor(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// @Bean
// public Subscription subscriptionReceiveSqlSponsor3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlSponsor(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionReceiveSqlSponsor4(RedisConnectionFactory factory) { // public Subscription subscriptionReceiveSqlSponsor0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlSponsor(listenerContainer, 4); // var subscription = receiveSqlSponsor(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
/* -------------------------------------------------------- | */ //// @Bean
//// public Subscription subscriptionReceiveSqlSponsor1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlSponsor(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveSqlSponsor2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlSponsor(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
//// @Bean
//// public Subscription subscriptionReceiveSqlSponsor3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlSponsor(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveSqlSponsor4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveSqlSponsor(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
//
// /* -------------------------------------------------------- | */
} }
...@@ -12,37 +12,59 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,37 +12,59 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerSlimeStep2RedisStreamConfig extends RedisStreamConfig { public class ConsumerSlimeStep2RedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSlimeStep2RdsReceiver consumerSlimeStep2RdsReceiver; ConsumerSlimeStep2RdsReceiver consumerSlimeStep2RdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 验票更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_STEP2.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_STEP2.name() + t)),
StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_STEP2.getKey(), ReadOffset.lastConsumed()), consumerSlimeStep2RdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 验票更新 */
@Bean @Bean
public Subscription subscriptionReceiveStep20(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveTransferResult(listenerContainer, 0); MQConst.SlimeQueue stream = MQConst.SlimeQueue.SQL_SLIME_STEP2;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerSlimeStep2RdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
//
// /**
// * 验票更新
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_STEP2.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_STEP2.name() + t)),
// StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_STEP2.getKey(), ReadOffset.lastConsumed()), consumerSlimeStep2RdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 验票更新 */
//
// @Bean
// public Subscription subscriptionReceiveStep20(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
// @Bean // @Bean
// public Subscription subscriptionReceiveStep21(RedisConnectionFactory factory) { // public Subscription subscriptionReceiveStep21(RedisConnectionFactory factory) {
......
...@@ -12,69 +12,91 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,69 +12,91 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerSlimeTicketRedisStreamConfig extends RedisStreamConfig { public class ConsumerSlimeTicketRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSlimeTicketRdsReceiver consumerSlimeTicketRdsReceiver; ConsumerSlimeTicketRdsReceiver consumerSlimeTicketRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 验票更新
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_TICKET_UPDATE.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_TICKET_UPDATE.name() + t)),
StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_TICKET_UPDATE.getKey(), ReadOffset.lastConsumed()), consumerSlimeTicketRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 验票更新 */
@Bean @Bean
public Subscription subscriptionReceiveTicket0(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveTransferResult(listenerContainer, 0); MQConst.SlimeQueue stream = MQConst.SlimeQueue.SQL_SLIME_TICKET_UPDATE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 1; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerSlimeTicketRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// @Bean // /**
// public Subscription subscriptionReceiveTicket1(RedisConnectionFactory factory) { // * 验票更新
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
// var subscription = receiveTransferResult(listenerContainer, 1); // * @param listenerContainer
// listenerContainer.start(); // * @param t
// return subscription; // * @return
// */
// private Subscription receiveTransferResult(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.SlimeQueue.SQL_SLIME_TICKET_UPDATE.getGroup(), getConsumerName(MQConst.SlimeQueue.SQL_SLIME_TICKET_UPDATE.name() + t)),
// StreamOffset.create(MQConst.SlimeQueue.SQL_SLIME_TICKET_UPDATE.getKey(), ReadOffset.lastConsumed()), consumerSlimeTicketRdsReceiver);
// } // }
// //
// @Bean // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
// public Subscription subscriptionReceiveTicket2(RedisConnectionFactory factory) { //
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // /* -------------------------------------------------------- | 验票更新 */
// var subscription = receiveTransferResult(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
// @Bean
// public Subscription subscriptionReceiveTicket3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
// //
// @Bean // @Bean
// public Subscription subscriptionReceiveTicket4(RedisConnectionFactory factory) { // public Subscription subscriptionReceiveTicket0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveTransferResult(listenerContainer, 4); // var subscription = receiveTransferResult(listenerContainer, 0);
// listenerContainer.start(); // listenerContainer.start();
// return subscription; // return subscription;
// } // }
//
//// @Bean
//// public Subscription subscriptionReceiveTicket1(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 1);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveTicket2(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 2);
//// listenerContainer.start();
//// return subscription;
//// }
//
//// @Bean
//// public Subscription subscriptionReceiveTicket3(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 3);
//// listenerContainer.start();
//// return subscription;
//// }
////
//// @Bean
//// public Subscription subscriptionReceiveTicket4(RedisConnectionFactory factory) {
//// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
//// var subscription = receiveTransferResult(listenerContainer, 4);
//// listenerContainer.start();
//// return subscription;
//// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
# begin-dev-这里是配置信息基本值 # begin-dev-这里是配置信息基本值
liquidnet: liquidnet:
cloudConfig: cloudConfig:
profile: dev profile: test
security: security:
username: user username: user
password: user123 password: user123
......
...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerStoneLogsRedisStreamConfig extends RedisStreamConfig { public class ConsumerStoneLogsRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
RedisInsertLogReceiver redisInsertLogReceiver; RedisInsertLogReceiver redisInsertLogReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlStoneInsertLog(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.StoneQueue.STONE_INSERT_LOGS.getGroup(), getConsumerName(MQConst.StoneQueue.STONE_INSERT_LOGS.name() + t)),
StreamOffset.create(MQConst.StoneQueue.STONE_INSERT_LOGS.getKey(), ReadOffset.lastConsumed()), redisInsertLogReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlStoneInsertLog0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlStoneInsertLog(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlStoneInsertLog1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlStoneInsertLog(listenerContainer, 1); MQConst.StoneQueue stream = MQConst.StoneQueue.STONE_INSERT_LOGS;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), redisInsertLogReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlStoneInsertLog2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlStoneInsertLog(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlStoneInsertLog(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.StoneQueue.STONE_INSERT_LOGS.getGroup(), getConsumerName(MQConst.StoneQueue.STONE_INSERT_LOGS.name() + t)),
// StreamOffset.create(MQConst.StoneQueue.STONE_INSERT_LOGS.getKey(), ReadOffset.lastConsumed()), redisInsertLogReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlStoneInsertLog0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertLog(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlStoneInsertLog1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertLog(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlStoneInsertLog2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertLog(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,75 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerStoneOrderRedisStreamConfig extends RedisStreamConfig { public class ConsumerStoneOrderRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
RedisInsertOrderReceiver redisInsertOrderReceiver; RedisInsertOrderReceiver redisInsertOrderReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlStoneInsertOrder(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.StoneQueue.STONE_ORDER_COUPON.getGroup(), getConsumerName(MQConst.StoneQueue.STONE_ORDER_COUPON.name() + t)),
StreamOffset.create(MQConst.StoneQueue.STONE_ORDER_COUPON.getKey(), ReadOffset.lastConsumed()), redisInsertOrderReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlStoneInsertOrder0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlStoneInsertOrder(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlStoneInsertOrder1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlStoneInsertOrder(listenerContainer, 1); MQConst.StoneQueue stream = MQConst.StoneQueue.STONE_ORDER_COUPON;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), redisInsertOrderReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlStoneInsertOrder2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlStoneInsertOrder(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlStoneInsertOrder(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.StoneQueue.STONE_ORDER_COUPON.getGroup(), getConsumerName(MQConst.StoneQueue.STONE_ORDER_COUPON.name() + t)),
// StreamOffset.create(MQConst.StoneQueue.STONE_ORDER_COUPON.getKey(), ReadOffset.lastConsumed()), redisInsertOrderReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlStoneInsertOrder0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertOrder(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlStoneInsertOrder1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertOrder(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlStoneInsertOrder2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertOrder(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,53 +12,76 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,53 +12,76 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerStoneUserRedisStreamConfig extends RedisStreamConfig { public class ConsumerStoneUserRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
RedisInsertUserReceiver redisInsertUserReceiver; RedisInsertUserReceiver redisInsertUserReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlStoneInsertUser(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.StoneQueue.STONE_INSERT_USER.getGroup(), getConsumerName(MQConst.StoneQueue.STONE_INSERT_USER.name() + t)),
StreamOffset.create(MQConst.StoneQueue.STONE_INSERT_USER.getKey(), ReadOffset.lastConsumed()), redisInsertUserReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlStoneInsertUser0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlStoneInsertUser(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlStoneInsertUser1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlStoneInsertUser(listenerContainer, 1); MQConst.StoneQueue stream = MQConst.StoneQueue.STONE_INSERT_USER;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), redisInsertUserReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlStoneInsertUser2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlStoneInsertUser(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlStoneInsertUser(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.StoneQueue.STONE_INSERT_USER.getGroup(), getConsumerName(MQConst.StoneQueue.STONE_INSERT_USER.name() + t)),
// StreamOffset.create(MQConst.StoneQueue.STONE_INSERT_USER.getKey(), ReadOffset.lastConsumed()), redisInsertUserReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlStoneInsertUser0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertUser(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlStoneInsertUser1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertUser(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlStoneInsertUser2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlStoneInsertUser(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
package com.liquidnet.service.consumer.sweet.config; package com.liquidnet.service.consumer.sweet.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetAnswerRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetAnswerRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,55 +12,77 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,55 +12,77 @@ import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; import org.springframework.data.redis.stream.Subscription;
import java.util.ArrayList;
import java.util.List;
import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_ANSWER_INSERT; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_ANSWER_INSERT;
@Configuration @Configuration
public class ConsumerSweetAnswerRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetAnswerRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetAnswerRdsReceiver consumerSweetAnswerRdsReceiver; ConsumerSweetAnswerRdsReceiver consumerSweetAnswerRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlAnswer(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_ANSWER_INSERT.getGroup(), getConsumerName(SWEET_ANSWER_INSERT.name() + t)),
StreamOffset.create(SWEET_ANSWER_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSweetAnswerRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlAnswer0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlAnswer(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlAnswer1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlAnswer(listenerContainer, 1); MQConst.SweetQueue stream = MQConst.SweetQueue.SWEET_ANSWER_INSERT;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerSweetAnswerRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlAnswer2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlAnswer(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlAnswer(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SWEET_ANSWER_INSERT.getGroup(), getConsumerName(SWEET_ANSWER_INSERT.name() + t)),
// StreamOffset.create(SWEET_ANSWER_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSweetAnswerRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlAnswer0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlAnswer(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlAnswer1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlAnswer(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlAnswer2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlAnswer(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment