koalanlp / python-support

Python wrapper for KoalaNLP (Korean NLP with Java/Scala)
MIT License
31 stars 9 forks source link

initialize with 2 process. #9

Closed Thien223 closed 3 years ago

Thien223 commented 4 years ago

기초정보

[py4j.java_gateway] An error occurred while trying to start the callback server (127.0.0.1:25334)
Traceback (most recent call last):
  File "/home/ubuntu/TTS/TTS_web_service/venv/lib/python3.6/site-packages/py4j/java_gateway.py", line 2207, in start
    self.server_socket.bind((self.address, self.port))
OSError: [Errno 98] Address already in use
[2020-08-24 16:12:08,239] ERROR in app: Exception on /api-inference [POST]
Traceback (most recent call last):
  File "/home/ubuntu/TTS/TTS_web_service/venv/lib/python3.6/site-packages/py4j/java_gateway.py", line 2207, in start
    self.server_socket.bind((self.address, self.port))
OSError: [Errno 98] Address already in use
그리고
py4j.protocol.Py4JNetworkError: An error occurred while trying to start the callback server (127.0.0.1:25334)

문제 발생합니다. 혹시 해결 방안 있으세요? 성과를 나눠 주셔서 감사합니다.

bgnkim commented 4 years ago

조금 늦게 연락드려서 죄송합니다. 아마 Py4J에서 Java-Python 통신을 위한 Port를 사용하는데, 이 값이 기본값이라 여러개를 쓰지 못하는 상황인 것 같습니다. JVM 초기화 부분을 수정하면 될 것 같은데, 수정해보고 알려드리겠습니다.

bgnkim commented 3 years ago

2.1.6부터 다음과 같이 초기화하시면 multiprocess에서 사용이 가능합니다.

initialize(..., port=PORT)

이 때 PORT는 각 multiprocess마다 다른 번호를 주시면 됩니다. 기본 포트는 25534입니다.