Skip to content

Commit 3a6c3bb

Browse files
CRZbulabulaJackieTien97
authored andcommitted
[AINode] Enable AINode start as background (-d) (#16762)
(cherry picked from commit 1ebb951)
1 parent b396766 commit 3a6c3bb

File tree

7 files changed

+42
-16
lines changed

7 files changed

+42
-16
lines changed

iotdb-core/ainode/iotdb/ainode/core/ai_node.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,11 @@ def stop(self):
163163
self._rpc_handler.stop()
164164
if self._rpc_service:
165165
self._rpc_service.stop()
166-
self._rpc_service.join(1)
167-
if self._rpc_service.is_alive():
168-
logger.warning("RPC service thread failed to stop in time.")
166+
for retry in range(30):
167+
self._rpc_service.join(2)
168+
if not self._rpc_service.is_alive():
169+
logger.warning(
170+
"RPC service thread failed to stop in time, retrying..."
171+
)
172+
break
169173
logger.info("IoTDB-AINode has successfully stopped.")

iotdb-core/ainode/iotdb/ainode/core/inference/pool_controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ def get_load(self, model_id, device_id, pool_id) -> int:
504504
return pool_group.get_load(pool_id)
505505
return -1
506506

507-
def shutdown(self):
507+
def stop(self):
508508
self._stop_event.set()
509509

510510
# shutdown pool controller

iotdb-core/ainode/iotdb/ainode/core/manager/inference_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,9 +366,9 @@ def inference(self, req: TInferenceReq):
366366
single_output=False,
367367
)
368368

369-
def shutdown(self):
369+
def stop(self):
370370
self._stop_event.set()
371-
self._pool_controller.shutdown()
371+
self._pool_controller.stop()
372372
while not self._result_queue.empty():
373373
self._result_queue.get_nowait()
374374
self._result_queue.close()

iotdb-core/ainode/iotdb/ainode/core/rpc/handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def __init__(self, ainode):
6969

7070
def stop(self) -> None:
7171
logger.info("Stopping the RPC service handler of IoTDB-AINode...")
72-
self._inference_manager.shutdown()
72+
self._inference_manager.stop()
7373

7474
def stopAINode(self) -> TSStatus:
7575
self._ainode.stop()

iotdb-core/ainode/iotdb/ainode/core/rpc/service.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,3 +125,4 @@ def stop(self) -> None:
125125
logger.info("Stopping the RPC service of IoTDB-AINode...")
126126
self._stop_event.set()
127127
self.__pool_server.stop()
128+
self._handler.stop()

scripts/sbin/start-ainode.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,14 @@ export IOTDB_AINODE_HOME
2727
echo "IOTDB_AINODE_HOME: $IOTDB_AINODE_HOME"
2828

2929
# fetch parameters with names
30-
while getopts "i:rn" opt; do
30+
daemon_mode=false
31+
while getopts "i:rnd" opt; do
3132
case $opt in
3233
n)
3334
;;
35+
d)
36+
daemon_mode=true
37+
;;
3438
\?) echo "Invalid option -$OPTARG" >&2
3539
exit 1
3640
;;
@@ -41,6 +45,11 @@ ain_ainode_executable="$IOTDB_AINODE_HOME/lib/ainode"
4145

4246
echo Script got ainode executable: "$ain_ainode_executable"
4347

44-
echo Starting AINode...
45-
46-
$ain_ainode_executable start
48+
if [ "$daemon_mode" = true ]; then
49+
echo Starting AINode in daemon mode...
50+
nohup $ain_ainode_executable start > /dev/null 2>&1 &
51+
echo AINode started in background
52+
else
53+
echo Starting AINode...
54+
$ain_ainode_executable start
55+
fi

scripts/sbin/windows/start-ainode.bat

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,20 @@ set ain_ainode_executable=%IOTDB_AINODE_HOME%\lib\ainode
3030

3131
echo Script got ainode executable: %ain_ainode_executable%
3232

33-
echo Starting AINode...
34-
35-
%$ain_ainode_executable% start
36-
37-
pause
33+
set daemon_mode=false
34+
:parse_args
35+
if "%~1"=="" goto end_parse
36+
if /i "%~1"=="-d" set daemon_mode=true
37+
shift
38+
goto parse_args
39+
:end_parse
40+
41+
if "%daemon_mode%"=="true" (
42+
echo Starting AINode in daemon mode...
43+
start /B "" %ain_ainode_executable% start
44+
echo AINode started in background
45+
) else (
46+
echo Starting AINode...
47+
%ain_ainode_executable% start
48+
pause
49+
)

0 commit comments

Comments
 (0)