#java #tomcat7 #mqtt #paho
#java #tomcat7 #mqtt #paho
Вопрос:
привет, ребята, я новичок, и я пытаюсь реализовать библиотеку paho, мой клиент paho получает сообщения в messageArrived по определенным темам, и я прочитал, что функции messageArrived синхронны, означает по одной за раз? правильно!
проблема в том, что мой tomcat иногда останавливается, мне приходится перезапускать его, и я вижу журнал в catalina.ошибка
The web application [] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation.
и я думаю, что мой процесс немного затянулся, потому что я должен проверить сообщение в соответствии с моим требованием, и я также попытался создать несколько предупреждающих SMS с ними в той же функции, так что это может занять некоторое время.
итак, как мне следует этим управлять, я прав? или полностью неверное предположение??
любое предложение будет отличным.
Ответ №1:
Правильный способ обработки длительно выполняющихся задач, которые потребляют сообщения MQTT, — это создать пул потоков и передать обработку этих сообщений пулу потоков из onMessageArrived()
метода.
java.util.concurrent.ThreadPoolExecutor, вероятно, является вашей лучшей отправной точкой.