これはspring integration.iを使用してmqtt接続を定義した方法です。これが可能かどうかわからないmqttサブスクライバは10メッセージの読み込み。現在、購読者はメッセージを公開した後に動作します。私たちはスプリングインテグレーションを使用してモスキートのメッセージ負荷10グループをバッチアップできますか?
@Autowired
ConnectorConfig config;
@Bean
public MqttPahoClientFactory mqttClientFactory() {
DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
factory.setServerURIs(config.getUrl());
factory.setUserName(config.getUser());
factory.setPassword(config.getPass());
return factory;
}
@Bean
public MessageProducer inbound() {
MqttPahoMessageDrivenChannelAdapter adapter =
new MqttPahoMessageDrivenChannelAdapter(config.getClientid(), mqttClientFactory(), "ALERT", "READING");
adapter.setCompletionTimeout(5000);
adapter.setConverter(new DefaultPahoMessageConverter());
adapter.setQos(1);
adapter.setOutputChannel(mqttRouterChannel());
return adapter;
}
/**this is router**/
@MessageEndpoint
public class MessageRouter {
private final Logger logger = LoggerFactory.getLogger(MessageRouter.class);
static final String ALERT = "ALERT";
static final String READING = "READING";
@Router(inputChannel = "mqttRouterChannel")
public String route(@Header("mqtt_topic") String topic){
String route = null;
switch (topic){
case ALERT:
logger.info("alert message received");
route = "alertTransformerChannel";
break;
case READING:
logger.info("reading message received");
route = "readingTransformerChannel";
break;
}
return route;
}
}
あなたがここで何を求めているのかははっきりしません。最初の10件のメッセージを無視しますか?または一度に10のメッセージのグループを一括してアップすることができますか? – hardillb
実際、不明です。質問をそれぞれ閉じます。 –
私は一度に10メッセージのグループを一括してバッチする必要があります – Priyamal