Я запустил свой сервер Standford NLP (CoreNLP v 3.91 , stanford-corenlp-full-2018-02-27.zip
) в Ubuntu 16.04 с помощью этой команды:
java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000
И через некоторое время, если я добавлю в него слишком большое предложение, оно взорвется.
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:205)
at edu.stanford.nlp.pipeline.StanfordCoreNLPServer$CoreNLPHandler.handle (StanfordCoreNLPServer.java:866)
[pool-1-thread-6] INFO CoreNLP - [/127.0.0.1:34048] API call w/annotators tokenize,ssplit,pos,parse,depparse
But if you ask any feminist directly (and I have, one of my best friends is a woman's studies major and we have had MANY heated passionate arguments; i've spoken to her friends too), they will fully say that modern feminism is about having the choice, and while they completely disagree with women who take this choice, it is still their choice to make.
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:205)
at edu.stanford.nlp.pipeline.StanfordCoreNLPServer$CoreNLPHandler.handle(StanfordCoreNLPServer.java:866)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)
at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[Thread-0] INFO CoreNLP - CoreNLP Server is shutting down.
К сожалению, это убивает мой сервер.Мой скрипт Python перехватывает исключение, вызванное тайм-аутом сервера, но как я могу его пропустить и продолжить использовать сервер.В настоящее время я использую eval()
для перезапуска сервера с помощью вышеуказанной команды.
Есть ли лучший способ пропустить эти сбои?
РЕДАКТИРОВАТЬ: Вот пример, где CoreNLP v 3.91 дает сбой, когда я выбрасываю слишком большое предложение: Обратите внимание, что очень длинное предложение вызовет исключение тайм-аута и приведет к сбою сервера.