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

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

修改 所有消费 自动绑定group

parent c032b792
package com.liquidnet.service.consumer.adam.config; package com.liquidnet.service.consumer.adam.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.adam.receiver.ConsumerAdamSmsNoticeRdsReceiver; import com.liquidnet.service.consumer.adam.receiver.ConsumerAdamSmsNoticeRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,111 +12,135 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,111 +12,135 @@ 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.AdamQueue; import static com.liquidnet.service.base.constant.MQConst.AdamQueue;
@Configuration @Configuration
public class ConsumerAdamSmsSenderRedisStreamConfig extends RedisStreamConfig { public class ConsumerAdamSmsSenderRedisStreamConfig extends RedisStreamConfig {
@Autowired
StringRedisTemplate stringRedisTemplate;
@Autowired @Autowired
ConsumerAdamSmsNoticeRdsReceiver consumerAdamSmsNoticeRdsReceiver; ConsumerAdamSmsNoticeRdsReceiver consumerAdamSmsNoticeRdsReceiver;
/**
* 短信通知
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlURegister(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(AdamQueue.SMS_NOTICE.getGroup(), getConsumerName(AdamQueue.SMS_NOTICE.name() + t)),
StreamOffset.create(AdamQueue.SMS_NOTICE.getKey(), ReadOffset.lastConsumed()), consumerAdamSmsNoticeRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 短信通知 */
@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
public Subscription subscriptionSmsNotice2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlURegister(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSmsNotice3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlURegister(listenerContainer, 3);
listenerContainer.start();
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 @Bean
public Subscription subscriptionSmsNotice6(RedisConnectionFactory factory) { public List<Subscription> subscriptionSqlSMS(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlURegister(listenerContainer, 6); MQConst.AdamQueue stream = MQConst.AdamQueue.SMS_NOTICE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 10; 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()), consumerAdamSmsNoticeRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSmsNotice7(RedisConnectionFactory factory) { // * 短信通知
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlURegister(listenerContainer, 7); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlURegister(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
@Bean // return listenerContainer.receiveAutoAck(Consumer.from(AdamQueue.SMS_NOTICE.getGroup(), getConsumerName(AdamQueue.SMS_NOTICE.name() + t)),
public Subscription subscriptionSmsNotice8(RedisConnectionFactory factory) { // StreamOffset.create(AdamQueue.SMS_NOTICE.getKey(), ReadOffset.lastConsumed()), consumerAdamSmsNoticeRdsReceiver);
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // }
var subscription = receiveSqlURegister(listenerContainer, 8); //
listenerContainer.start(); // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
return subscription; //
} // /* -------------------------------------------------------- | 短信通知 */
//
@Bean // @Bean
public Subscription subscriptionSmsNotice9(RedisConnectionFactory factory) { // public Subscription subscriptionSmsNotice0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlURegister(listenerContainer, 9); // var subscription = receiveSqlURegister(listenerContainer, 0);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
// @Bean
// public Subscription subscriptionSmsNotice1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSmsNotice2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSmsNotice3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlURegister(listenerContainer, 3);
// listenerContainer.start();
// 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;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -13,205 +13,245 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -13,205 +13,245 @@ 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 ConsumerChimeRedisStreamConfig extends RedisStreamConfig { public class ConsumerChimeRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerChimeUserOperationDisLikeRdsReceiver consumerChimeUserOperationDisLikeRdsReceiver; ConsumerChimeUserOperationDisLikeRdsReceiver consumerChimeUserOperationDisLikeRdsReceiver;
@Autowired @Autowired
ConsumerChimeUserOperationLikeRdsReceiver consumerChimeUserOperationLikeRdsReceiver; ConsumerChimeUserOperationLikeRdsReceiver consumerChimeUserOperationLikeRdsReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
/**
* 划卡-喜欢
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveUserOperationLike(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.ChimeQueue.USER_OPERATION_LIKE.getGroup(), getConsumerName(MQConst.ChimeQueue.USER_OPERATION_LIKE.name() + t)),
StreamOffset.create(MQConst.ChimeQueue.USER_OPERATION_LIKE.getKey(), ReadOffset.lastConsumed()), consumerChimeUserOperationLikeRdsReceiver);
}
/**
* 划卡-不喜欢
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveUserOperationDisLike(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.ChimeQueue.USER_OPERATION_DISLIKE.getGroup(), getConsumerName(MQConst.ChimeQueue.USER_OPERATION_DISLIKE.name() + t)),
StreamOffset.create(MQConst.ChimeQueue.USER_OPERATION_DISLIKE.getKey(), ReadOffset.lastConsumed()), consumerChimeUserOperationDisLikeRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 划卡-喜欢 */
@Bean
public Subscription subscriptionUserOperationLike0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 3);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike4(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 4);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike5(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 5);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike6(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 6);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike7(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 7);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike8(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 8);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationLike9(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationLike(listenerContainer, 9);
listenerContainer.start();
return subscription;
}
/* -------------------------------------------------------- | 划卡-不喜欢 */
@Bean
public Subscription subscriptionUserOperationDisLike0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationDisLike(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationDisLike1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationDisLike(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationDisLike2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationDisLike(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationDisLike3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationDisLike(listenerContainer, 3);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationDisLike4(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationDisLike(listenerContainer, 4);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationDisLike5(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationDisLike(listenerContainer, 5);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionUserOperationDisLike6(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveUserOperationDisLike(listenerContainer, 6);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionUserOperationDisLike7(RedisConnectionFactory factory) { public List<Subscription> subscriptionSqlLike(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveUserOperationDisLike(listenerContainer, 7); MQConst.ChimeQueue stream = MQConst.ChimeQueue.USER_OPERATION_LIKE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 10; 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()), consumerChimeUserOperationLikeRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean @Bean
public Subscription subscriptionUserOperationDisLike8(RedisConnectionFactory factory) { public List<Subscription> subscriptionSqlDisLike(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveUserOperationDisLike(listenerContainer, 8); MQConst.ChimeQueue stream = MQConst.ChimeQueue.USER_OPERATION_DISLIKE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 10; 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()), consumerChimeUserOperationDisLikeRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionUserOperationDisLike9(RedisConnectionFactory factory) { // * 划卡-喜欢
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveUserOperationDisLike(listenerContainer, 9); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveUserOperationLike(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.ChimeQueue.USER_OPERATION_LIKE.getGroup(), getConsumerName(MQConst.ChimeQueue.USER_OPERATION_LIKE.name() + t)),
// StreamOffset.create(MQConst.ChimeQueue.USER_OPERATION_LIKE.getKey(), ReadOffset.lastConsumed()), consumerChimeUserOperationLikeRdsReceiver);
// }
//
// /**
// * 划卡-不喜欢
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveUserOperationDisLike(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(MQConst.ChimeQueue.USER_OPERATION_DISLIKE.getGroup(), getConsumerName(MQConst.ChimeQueue.USER_OPERATION_DISLIKE.name() + t)),
// StreamOffset.create(MQConst.ChimeQueue.USER_OPERATION_DISLIKE.getKey(), ReadOffset.lastConsumed()), consumerChimeUserOperationDisLikeRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 划卡-喜欢 */
//
// @Bean
// public Subscription subscriptionUserOperationLike0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike4(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 4);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike5(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 5);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike6(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 6);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike7(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 7);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike8(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 8);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationLike9(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationLike(listenerContainer, 9);
// listenerContainer.start();
// return subscription;
// }
//
// /* -------------------------------------------------------- | 划卡-不喜欢 */
//
// @Bean
// public Subscription subscriptionUserOperationDisLike0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike4(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 4);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike5(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 5);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike6(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 6);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike7(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 7);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike8(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 8);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionUserOperationDisLike9(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveUserOperationDisLike(listenerContainer, 9);
// 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.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;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
...@@ -12,112 +12,134 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,112 +12,134 @@ 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_CLOSE; import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_CLOSE;
@Configuration @Configuration
public class ConsumerKylinSqlOptOrderCloseRedisStreamConfig extends RedisStreamConfig { public class ConsumerKylinSqlOptOrderCloseRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerKylinSqlOptOrderCloseRedisReceiver consumerKylinSqlOptOrderCloseRedisReceiver; ConsumerKylinSqlOptOrderCloseRedisReceiver consumerKylinSqlOptOrderCloseRedisReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 订单关闭
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlOptOrderClose(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_CLOSE.getGroup(), getConsumerName(SQL_ORDER_CLOSE.name() + t)),
StreamOffset.create(SQL_ORDER_CLOSE.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOptOrderCloseRedisReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 订单关闭 */
@Bean
public Subscription subscriptionSqlOptOrderClose0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOptOrderClose1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOptOrderClose2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOptOrderClose3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 3);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOptOrderClose4(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 4);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOptOrderClose5(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 5);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOptOrderClose6(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 6);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOptOrderClose7(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 7);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlOptOrderClose8(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOptOrderClose(listenerContainer, 8);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlOptOrderClose9(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlOptOrderClose(listenerContainer, 9); MQConst.KylinQueue stream = MQConst.KylinQueue.SQL_ORDER_CLOSE;
listenerContainer.start(); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
return subscription; for (int i = 0; i < 10; 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()), consumerKylinSqlOptOrderCloseRedisReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
//
// /**
// * 订单关闭
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlOptOrderClose(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SQL_ORDER_CLOSE.getGroup(), getConsumerName(SQL_ORDER_CLOSE.name() + t)),
// StreamOffset.create(SQL_ORDER_CLOSE.getKey(), ReadOffset.lastConsumed()), consumerKylinSqlOptOrderCloseRedisReceiver
// );
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 订单关闭 */
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 3);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose4(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 4);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose5(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 5);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose6(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 6);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose7(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 7);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose8(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(listenerContainer, 8);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlOptOrderClose9(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlOptOrderClose(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.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.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.sweet.receiver.ConsumerSmileUserReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSmileUserReceiver;
import lombok.var; import lombok.var;
...@@ -11,66 +12,89 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,66 +12,89 @@ 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.time.Duration; import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class ConsumerSmileUserRedisStreamConfig { public class ConsumerSmileUserRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSmileUserReceiver consumerSmileUserReceiver; ConsumerSmileUserReceiver consumerSmileUserReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions
.builder()
.pollTimeout(Duration.ofMillis(1))
.build();
return StreamMessageListenerContainer.create(factory, options);
}
/**
* 用户的增加和修改
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlUser(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(
Consumer.from(MQConst.SmileQueue.SMILE_USER.getGroup(), MQConst.SmileQueue.SMILE_USER.name() + t),
StreamOffset.create(MQConst.SmileQueue.SMILE_USER.getKey(), ReadOffset.lastConsumed()), consumerSmileUserReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlUser(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlUser(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlUser2(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlUser(listenerContainer, 2); MQConst.SmileQueue stream = MQConst.SmileQueue.SMILE_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()), consumerSmileUserReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
public Subscription subscriptionSqlUser3(RedisConnectionFactory factory) { // var options = StreamMessageListenerContainer
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // .StreamMessageListenerContainerOptions
var subscription = receiveSqlUser(listenerContainer, 3); // .builder()
listenerContainer.start(); // .pollTimeout(Duration.ofMillis(1))
return subscription; // .build();
} // return StreamMessageListenerContainer.create(factory, options);
// }
//
//
// /**
// * 用户的增加和修改
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlUser(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(
// Consumer.from(MQConst.SmileQueue.SMILE_USER.getGroup(), MQConst.SmileQueue.SMILE_USER.name() + t),
// StreamOffset.create(MQConst.SmileQueue.SMILE_USER.getKey(), ReadOffset.lastConsumed()), consumerSmileUserReceiver
// );
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlUser(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUser(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlUser2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUser(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlUser3(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUser(listenerContainer, 3);
// 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;
// }
/* -------------------------------------------------------- | */ /* -------------------------------------------------------- | */
} }
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.ConsumerSweetAntigenicQuestionRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetAntigenicQuestionRdsReceiver;
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_ANTIGENIC_QUESTION; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_ANTIGENIC_QUESTION;
@Configuration @Configuration
public class ConsumerSweetAntigenicQuestionRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetAntigenicQuestionRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetAntigenicQuestionRdsReceiver consumerAntigenicQuestionRdsReceiver; ConsumerSweetAntigenicQuestionRdsReceiver consumerAntigenicQuestionRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlAntigenicQuestion(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_ANTIGENIC_QUESTION.getGroup(), getConsumerName(SWEET_ANTIGENIC_QUESTION.name() + t)),
StreamOffset.create(SWEET_ANTIGENIC_QUESTION.getKey(), ReadOffset.lastConsumed()), consumerAntigenicQuestionRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlAntigenicQuestion0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlAntigenicQuestion(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlAntigenicQuestion1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlAntigenicQuestion(listenerContainer, 1); MQConst.SweetQueue stream = MQConst.SweetQueue.SWEET_ANTIGENIC_QUESTION;
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()), consumerAntigenicQuestionRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlAntigenicQuestion2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlAntigenicQuestion(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlAntigenicQuestion(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SWEET_ANTIGENIC_QUESTION.getGroup(), getConsumerName(SWEET_ANTIGENIC_QUESTION.name() + t)),
// StreamOffset.create(SWEET_ANTIGENIC_QUESTION.getKey(), ReadOffset.lastConsumed()), consumerAntigenicQuestionRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlAntigenicQuestion0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlAntigenicQuestion(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlAntigenicQuestion1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlAntigenicQuestion(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlAntigenicQuestion2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlAntigenicQuestion(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.ConsumerSweetCityVoteRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetCityVoteRdsReceiver;
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_CITY_VOTE; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_CITY_VOTE;
@Configuration @Configuration
public class ConsumerSweetCityVoteRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetCityVoteRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetCityVoteRdsReceiver consumerCityVoteRdsReceiver; ConsumerSweetCityVoteRdsReceiver consumerCityVoteRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlCityVote(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_CITY_VOTE.getGroup(), getConsumerName(SWEET_CITY_VOTE.name() + t)),
StreamOffset.create(SWEET_CITY_VOTE.getKey(), ReadOffset.lastConsumed()), consumerCityVoteRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlCityVote0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCityVote(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlCityVote1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlCityVote(listenerContainer, 1); MQConst.SweetQueue stream = MQConst.SweetQueue.SWEET_CITY_VOTE;
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()), consumerCityVoteRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlCityVote2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlCityVote(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlCityVote(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SWEET_CITY_VOTE.getGroup(), getConsumerName(SWEET_CITY_VOTE.name() + t)),
// StreamOffset.create(SWEET_CITY_VOTE.getKey(), ReadOffset.lastConsumed()), consumerCityVoteRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlCityVote0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCityVote(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCityVote1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCityVote(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlCityVote2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlCityVote(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.ConsumerSweetIntegralActivityDrawRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetIntegralActivityDrawRdsReceiver;
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_INTEGRAL_ACTIVITY_DRAW; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_INTEGRAL_ACTIVITY_DRAW;
@Configuration @Configuration
public class ConsumerSweetIntegralActivityDrawRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetIntegralActivityDrawRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetIntegralActivityDrawRdsReceiver consumerIntegralActivityDrawRdsReceiver; ConsumerSweetIntegralActivityDrawRdsReceiver consumerIntegralActivityDrawRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlIntegralActivityDraw(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_INTEGRAL_ACTIVITY_DRAW.getGroup(), getConsumerName(SWEET_INTEGRAL_ACTIVITY_DRAW.name() + t)),
StreamOffset.create(SWEET_INTEGRAL_ACTIVITY_DRAW.getKey(), ReadOffset.lastConsumed()), consumerIntegralActivityDrawRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlIntegralActivityDraw0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlIntegralActivityDraw(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlIntegralActivityDraw1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlIntegralActivityDraw(listenerContainer, 1); MQConst.SweetQueue stream = SWEET_INTEGRAL_ACTIVITY_DRAW;
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()), consumerIntegralActivityDrawRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlIntegralActivityDraw2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlIntegralActivityDraw(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlIntegralActivityDraw(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SWEET_INTEGRAL_ACTIVITY_DRAW.getGroup(), getConsumerName(SWEET_INTEGRAL_ACTIVITY_DRAW.name() + t)),
// StreamOffset.create(SWEET_INTEGRAL_ACTIVITY_DRAW.getKey(), ReadOffset.lastConsumed()), consumerIntegralActivityDrawRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlIntegralActivityDraw0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlIntegralActivityDraw(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlIntegralActivityDraw1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlIntegralActivityDraw(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlIntegralActivityDraw2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlIntegralActivityDraw(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.ConsumerSweetMaoDengReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetMaoDengReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,51 +12,74 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,51 +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;
import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_WECHAT_MAODENG_TEXT_INSERT; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_WECHAT_MAODENG_TEXT_INSERT;
@Configuration @Configuration
public class ConsumerSweetMaoDengConfig extends RedisStreamConfig { public class ConsumerSweetMaoDengConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetMaoDengReceiver consumerSweetMaoDengReceiver; ConsumerSweetMaoDengReceiver consumerSweetMaoDengReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
/**
* 猫登天空
*/
private Subscription receiveSqlMaoDeng(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_WECHAT_MAODENG_TEXT_INSERT.getGroup(), getConsumerName(SWEET_WECHAT_MAODENG_TEXT_INSERT.name() + t)),
StreamOffset.create(SWEET_WECHAT_MAODENG_TEXT_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSweetMaoDengReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | */
@Bean
public Subscription subscriptionSqlMaoDeng0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlMaoDeng(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlMaoDeng1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlMaoDeng(listenerContainer, 1); MQConst.SweetQueue stream = SWEET_WECHAT_MAODENG_TEXT_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()), consumerSweetMaoDengReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlMaoDeng2(RedisConnectionFactory factory) { // * 猫登天空
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // */
var subscription = receiveSqlMaoDeng(listenerContainer, 2); // private Subscription receiveSqlMaoDeng(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
listenerContainer.start(); // return listenerContainer.receiveAutoAck(Consumer.from(SWEET_WECHAT_MAODENG_TEXT_INSERT.getGroup(), getConsumerName(SWEET_WECHAT_MAODENG_TEXT_INSERT.name() + t)),
return subscription; // StreamOffset.create(SWEET_WECHAT_MAODENG_TEXT_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSweetMaoDengReceiver);
} // }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | */
//
// @Bean
// public Subscription subscriptionSqlMaoDeng0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlMaoDeng(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlMaoDeng1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlMaoDeng(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlMaoDeng2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlMaoDeng(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.ConsumerSweetStoneIntegralReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetStoneIntegralReceiver;
import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetTemplateMsgReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetTemplateMsgReceiver;
import lombok.var; import lombok.var;
...@@ -12,9 +13,13 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -12,9 +13,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.SweetQueue.SWEET_TEMPLATE_MSG; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_TEMPLATE_MSG;
import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_STONE_INTEGRAL; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_STONE_INTEGRAL;
...@@ -24,75 +29,108 @@ public class ConsumerSweetOtherApiStreamConfig extends RedisStreamConfig { ...@@ -24,75 +29,108 @@ public class ConsumerSweetOtherApiStreamConfig extends RedisStreamConfig {
ConsumerSweetTemplateMsgReceiver consumerSweetTemplateMsgReceiver; ConsumerSweetTemplateMsgReceiver consumerSweetTemplateMsgReceiver;
@Autowired @Autowired
ConsumerSweetStoneIntegralReceiver consumerSweetStoneIntegralReceiver; ConsumerSweetStoneIntegralReceiver consumerSweetStoneIntegralReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 模版消息
*/
private Subscription receiveApiTemplateMsg(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_TEMPLATE_MSG.getGroup(), getConsumerName(SWEET_TEMPLATE_MSG.name() + t)),
StreamOffset.create(SWEET_TEMPLATE_MSG.getKey(), ReadOffset.lastConsumed()), consumerSweetTemplateMsgReceiver);
}
/**
* 增减积分
*/
private Subscription receiveApiStoneIntgral(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_STONE_INTEGRAL.getGroup(), getConsumerName(SWEET_STONE_INTEGRAL.name() + t)),
StreamOffset.create(SWEET_STONE_INTEGRAL.getKey(), ReadOffset.lastConsumed()), consumerSweetStoneIntegralReceiver);
}
/*----------------------------------------------------------------------------------------------------------------*/
/*------------------模版消息------------------*/
@Bean
public Subscription subscriptionApiTemplateMsg0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveApiTemplateMsg(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionApiTemplateMsg1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveApiTemplateMsg(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionApiTemplateMsg2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveApiTemplateMsg(listenerContainer, 2);
listenerContainer.start();
return subscription;
}
/*------------------增减积分------------------*/
@Bean
public Subscription subscriptionApiStoneIntgral0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveApiStoneIntgral(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionApiStoneIntgral1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveApiStoneIntgral(listenerContainer, 1); MQConst.SweetQueue stream = MQConst.SweetQueue.SWEET_TEMPLATE_MSG;
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()), consumerSweetTemplateMsgReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean @Bean
public Subscription subscriptionApiStoneIntgral2(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveApiStoneIntgral(listenerContainer, 2); MQConst.SweetQueue stream = MQConst.SweetQueue.SWEET_STONE_INTEGRAL;
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()), consumerSweetStoneIntegralReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
// * 模版消息
// */
// private Subscription receiveApiTemplateMsg(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SWEET_TEMPLATE_MSG.getGroup(), getConsumerName(SWEET_TEMPLATE_MSG.name() + t)),
// StreamOffset.create(SWEET_TEMPLATE_MSG.getKey(), ReadOffset.lastConsumed()), consumerSweetTemplateMsgReceiver);
// }
// /**
// * 增减积分
// */
// private Subscription receiveApiStoneIntgral(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SWEET_STONE_INTEGRAL.getGroup(), getConsumerName(SWEET_STONE_INTEGRAL.name() + t)),
// StreamOffset.create(SWEET_STONE_INTEGRAL.getKey(), ReadOffset.lastConsumed()), consumerSweetStoneIntegralReceiver);
// }
//
// /*----------------------------------------------------------------------------------------------------------------*/
//
// /*------------------模版消息------------------*/
//
// @Bean
// public Subscription subscriptionApiTemplateMsg0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveApiTemplateMsg(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionApiTemplateMsg1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveApiTemplateMsg(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionApiTemplateMsg2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveApiTemplateMsg(listenerContainer, 2);
// listenerContainer.start();
// return subscription;
// }
//
// /*------------------增减积分------------------*/
//
// @Bean
// public Subscription subscriptionApiStoneIntgral0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveApiStoneIntgral(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionApiStoneIntgral1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveApiStoneIntgral(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionApiStoneIntgral2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveApiStoneIntgral(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.ConsumerSweetPosterRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetPosterRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -12,45 +13,67 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; ...@@ -12,45 +13,67 @@ import org.springframework.data.redis.connection.RedisConnectionFactory;
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_POSTER; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_POSTER;
@Configuration @Configuration
public class ConsumerSweetPosterRdsReceiverConfig extends RedisStreamConfig { public class ConsumerSweetPosterRdsReceiverConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetPosterRdsReceiver consumerSweetPosterRdsReceiver; ConsumerSweetPosterRdsReceiver consumerSweetPosterRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 活动海报
*/
private Subscription receiveSqlPoster(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_POSTER.getGroup(), getConsumerName(SWEET_POSTER.name() + t)),
StreamOffset.create(SWEET_POSTER.getKey(), ReadOffset.lastConsumed()), consumerSweetPosterRdsReceiver);
}
@Bean
public Subscription subscriptionSqlPoster0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlPoster(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlPoster1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlPoster(listenerContainer, 1); MQConst.SweetQueue stream = SWEET_POSTER;
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()), consumerSweetPosterRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlPoster2(RedisConnectionFactory factory) { // * 活动海报
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // */
var subscription = receiveSqlPoster(listenerContainer, 2); // private Subscription receiveSqlPoster(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
listenerContainer.start(); // return listenerContainer.receiveAutoAck(Consumer.from(SWEET_POSTER.getGroup(), getConsumerName(SWEET_POSTER.name() + t)),
return subscription; // StreamOffset.create(SWEET_POSTER.getKey(), ReadOffset.lastConsumed()), consumerSweetPosterRdsReceiver);
} // }
//
// @Bean
// public Subscription subscriptionSqlPoster0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlPoster(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlPoster1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlPoster(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlPoster2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlPoster(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.ConsumerSweetRemindRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetRemindRdsReceiver;
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_REMIND_INSERT; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_REMIND_INSERT;
@Configuration @Configuration
public class ConsumerSweetRemindRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetRemindRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetRemindRdsReceiver consumerSweetRemindRdsReceiver; ConsumerSweetRemindRdsReceiver consumerSweetRemindRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlRemind(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_REMIND_INSERT.getGroup(), getConsumerName(SWEET_REMIND_INSERT.name() + t)),
StreamOffset.create(SWEET_REMIND_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSweetRemindRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlRemind0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlRemind(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlRemind1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlRemind(listenerContainer, 1); MQConst.SweetQueue stream = SWEET_REMIND_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()), consumerSweetRemindRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlRemind2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlRemind(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlRemind(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SWEET_REMIND_INSERT.getGroup(), getConsumerName(SWEET_REMIND_INSERT.name() + t)),
// StreamOffset.create(SWEET_REMIND_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSweetRemindRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlRemind0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlRemind(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlRemind1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlRemind(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlRemind2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlRemind(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.ConsumerSweetSqlLuckDrawRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetSqlLuckDrawRdsReceiver;
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.LUCK_DRAW; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.LUCK_DRAW;
@Configuration @Configuration
public class ConsumerSweetSqlLuckDrawRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetSqlLuckDrawRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetSqlLuckDrawRdsReceiver consumerSweetSqlLuckDrawRdsReceiver; ConsumerSweetSqlLuckDrawRdsReceiver consumerSweetSqlLuckDrawRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlLuckDraw(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(LUCK_DRAW.getGroup(), getConsumerName(LUCK_DRAW.name() + t)),
StreamOffset.create(LUCK_DRAW.getKey(), ReadOffset.lastConsumed()), consumerSweetSqlLuckDrawRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlLuckDraw0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlLuckDraw(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlLuckDraw1(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlLuckDraw(listenerContainer, 1); MQConst.SweetQueue stream = LUCK_DRAW;
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()), consumerSweetSqlLuckDrawRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
@Bean // /**
public Subscription subscriptionSqlLuckDraw2(RedisConnectionFactory factory) { // * 缺票登记
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // *
var subscription = receiveSqlLuckDraw(listenerContainer, 2); // * @param listenerContainer
listenerContainer.start(); // * @param t
return subscription; // * @return
} // */
// private Subscription receiveSqlLuckDraw(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(LUCK_DRAW.getGroup(), getConsumerName(LUCK_DRAW.name() + t)),
// StreamOffset.create(LUCK_DRAW.getKey(), ReadOffset.lastConsumed()), consumerSweetSqlLuckDrawRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlLuckDraw0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlLuckDraw(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlLuckDraw1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlLuckDraw(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlLuckDraw2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlLuckDraw(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.ConsumerSweetSqlUserRelationMDSKRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetSqlUserRelationMDSKRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,55 +12,76 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,55 +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;
import static com.liquidnet.service.base.constant.MQConst.SweetQueue.ARTISTS_RELATION_MDSK; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.ARTISTS_RELATION_MDSK;
@Configuration @Configuration
public class ConsumerSweetSqlUserRelationMDSKRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetSqlUserRelationMDSKRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetSqlUserRelationMDSKRdsReceiver consumerSweetSqlUserRelationMDSKRdsReceiver; ConsumerSweetSqlUserRelationMDSKRdsReceiver consumerSweetSqlUserRelationMDSKRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlUserMdskRelation(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(ARTISTS_RELATION_MDSK.getGroup(), getConsumerName(ARTISTS_RELATION_MDSK.name() + t)),
StreamOffset.create(ARTISTS_RELATION_MDSK.getKey(), ReadOffset.lastConsumed()), consumerSweetSqlUserRelationMDSKRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlUserMdskRelation0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlUserMdskRelation(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlUserMdskRelation1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlUserMdskRelation(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlUserMdskRelation2(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlUserMdskRelation(listenerContainer, 2); MQConst.SweetQueue stream = ARTISTS_RELATION_MDSK;
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()), consumerSweetSqlUserRelationMDSKRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
// * 缺票登记
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlUserMdskRelation(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(ARTISTS_RELATION_MDSK.getGroup(), getConsumerName(ARTISTS_RELATION_MDSK.name() + t)),
// StreamOffset.create(ARTISTS_RELATION_MDSK.getKey(), ReadOffset.lastConsumed()), consumerSweetSqlUserRelationMDSKRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlUserMdskRelation0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUserMdskRelation(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlUserMdskRelation1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUserMdskRelation(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlUserMdskRelation2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUserMdskRelation(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.ConsumerSweetSqlUserRelationRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetSqlUserRelationRdsReceiver;
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.ARTISTS_RELATION; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.ARTISTS_RELATION;
@Configuration @Configuration
public class ConsumerSweetSqlUserRelationRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetSqlUserRelationRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetSqlUserRelationRdsReceiver consumerSweetSqlUserRelationRdsReceiver; ConsumerSweetSqlUserRelationRdsReceiver consumerSweetSqlUserRelationRdsReceiver;
@Autowired
StringRedisTemplate stringRedisTemplate;
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlUserRelation(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(ARTISTS_RELATION.getGroup(), getConsumerName(ARTISTS_RELATION.name() + t)),
StreamOffset.create(ARTISTS_RELATION.getKey(), ReadOffset.lastConsumed()), consumerSweetSqlUserRelationRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlUserRelation0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlUserRelation(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlUserRelation1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlUserRelation(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlUserRelation2(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlUserRelation(listenerContainer, 2); MQConst.SweetQueue stream = ARTISTS_RELATION;
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()), consumerSweetSqlUserRelationRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
// * 缺票登记
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlUserRelation(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(ARTISTS_RELATION.getGroup(), getConsumerName(ARTISTS_RELATION.name() + t)),
// StreamOffset.create(ARTISTS_RELATION.getKey(), ReadOffset.lastConsumed()), consumerSweetSqlUserRelationRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlUserRelation0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUserRelation(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlUserRelation1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUserRelation(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlUserRelation2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlUserRelation(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.ConsumerSweetUserRdsReceiver; import com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetUserRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -11,55 +12,76 @@ import org.springframework.data.redis.connection.stream.Consumer; ...@@ -11,55 +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;
import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT; import static com.liquidnet.service.base.constant.MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT;
@Configuration @Configuration
public class ConsumerSweetUserRedisStreamConfig extends RedisStreamConfig { public class ConsumerSweetUserRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
ConsumerSweetUserRdsReceiver consumerSweetUserRdsReceiver; ConsumerSweetUserRdsReceiver consumerSweetUserRdsReceiver;
@Autowired
/** StringRedisTemplate stringRedisTemplate;
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlSweetUser(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(SWEET_WECHAT_USER_INSERT.getGroup(), getConsumerName(SWEET_WECHAT_USER_INSERT.name() + t)),
StreamOffset.create(SWEET_WECHAT_USER_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSweetUserRdsReceiver);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public Subscription subscriptionSqlSweetUser0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlSweetUser(listenerContainer, 0);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionSqlSweetUser1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlSweetUser(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean @Bean
public Subscription subscriptionSqlSweetUser2(RedisConnectionFactory factory) { public List<Subscription> subscriptionSql(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); List<Subscription> subscriptionList = new ArrayList<>();
var subscription = receiveSqlSweetUser(listenerContainer, 2); MQConst.SweetQueue stream = SWEET_WECHAT_USER_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()), consumerSweetUserRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
} }
// /**
// * 缺票登记
// *
// * @param listenerContainer
// * @param t
// * @return
// */
// private Subscription receiveSqlSweetUser(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
// return listenerContainer.receiveAutoAck(Consumer.from(SWEET_WECHAT_USER_INSERT.getGroup(), getConsumerName(SWEET_WECHAT_USER_INSERT.name() + t)),
// StreamOffset.create(SWEET_WECHAT_USER_INSERT.getKey(), ReadOffset.lastConsumed()), consumerSweetUserRdsReceiver);
// }
//
// /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
// /* -------------------------------------------------------- | 缺票登记 */
//
// @Bean
// public Subscription subscriptionSqlSweetUser0(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlSweetUser(listenerContainer, 0);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlSweetUser1(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlSweetUser(listenerContainer, 1);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionSqlSweetUser2(RedisConnectionFactory factory) {
// var listenerContainer = this.buildStreamMessageListenerContainer(factory);
// var subscription = receiveSqlSweetUser(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