I don't think to use a while (true) inside a servlet could be a good idea, so I wonder if I should useServlet With Thread or what other alternatives I have for this.
@Override
public void doWork(Channel channel, QueueingConsumer queueingConsumer)
throws Exception {
while (true) {
QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();
BasicProperties props = delivery.getProperties();
BasicProperties replyProps = new BasicProperties.Builder().correlationId(props.getCorrelationId()).build();
byte[] response = null;
try {
String message = ObjectCodec.deSerialize(delivery.getBody()).toString();
response = process(message);
} catch (Exception e) {
LogUtils.logError("CMDBDeleteQueue process data fail.", e);
} finally {
channel.basicPublish("", props.getReplyTo(), replyProps,response);
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
}
}
}
There is no other way,Do not apply while(true)? thanks.