try {
Message message = null;
if (!polling) {
// Long number = cloudQueue.getAttributes().getActiveMessages();
message = cloudQueue.popMessage(); //debug下在该行报错
if (message == null) {
polling = true;
continue;
}
} else {
if (setPolling()) {
log.info("Thread" + workerId + " Polling!");
} else {
continue;
}
do {
log.info("Thread" + workerId + " KEEP Polling!");
try {
message = cloudQueue.popMessage(WAIT_SECONDS);
} catch(Exception e) {
log.error("Exception Happened when polling popMessage: " + e);
}
} while (message == null);
clearPolling();
}
return message;
} catch (Exception e) {
log.error("Exception Happened when popMessage: " + e);
}
修改为:
try {
Message message = null;
if (!polling) {
Long number = cloudQueue.getAttributes().getActiveMessages();//改为现在这样解决
// message = cloudQueue.popMessage();
if (number == 0) {
polling = true;
continue;
}
} else {
if (setPolling()) {
log.info("Thread" + workerId + " Polling!");
} else {
continue;
}
do {
log.info("Thread" + workerId + " KEEP Polling!");
try {
message = cloudQueue.popMessage(WAIT_SECONDS);
} catch(Exception e) {
log.error("Exception Happened when polling popMessage: " + e);
}
} while (message == null);
clearPolling();
}
return message;
} catch (Exception e) {
log.error("Exception Happened when popMessage: " + e);
}