fix: Fixed couldn't exit correctly when an exception occurred or when Ctrl+C was pressed
This commit is contained in:
+9
-5
@@ -1,5 +1,6 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
|
import signal
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from creart import create
|
from creart import create
|
||||||
@@ -70,18 +71,18 @@ class StarBot:
|
|||||||
await self.__datasource.load()
|
await self.__datasource.load()
|
||||||
except DataSourceException as ex:
|
except DataSourceException as ex:
|
||||||
logger.error(ex.msg)
|
logger.error(ex.msg)
|
||||||
return
|
return 1
|
||||||
|
|
||||||
if not self.__datasource.bots:
|
if not self.__datasource.bots:
|
||||||
logger.error("数据源配置为空, 请先在数据源中配置完毕后再重新运行")
|
logger.error("数据源配置为空, 请先在数据源中配置完毕后再重新运行")
|
||||||
return
|
return 2
|
||||||
|
|
||||||
# 连接 Redis
|
# 连接 Redis
|
||||||
try:
|
try:
|
||||||
await redis.init()
|
await redis.init()
|
||||||
except RedisException as ex:
|
except RedisException as ex:
|
||||||
logger.error(ex.msg)
|
logger.error(ex.msg)
|
||||||
return
|
return 3
|
||||||
|
|
||||||
# 通过 UID 列表批量获取信息
|
# 通过 UID 列表批量获取信息
|
||||||
info = {}
|
info = {}
|
||||||
@@ -190,7 +191,7 @@ class StarBot:
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
logger.error(ex)
|
logger.error(ex)
|
||||||
return
|
return 4
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""
|
"""
|
||||||
@@ -215,5 +216,8 @@ class StarBot:
|
|||||||
|
|
||||||
bcc = create(Broadcast)
|
bcc = create(Broadcast)
|
||||||
loop = bcc.loop
|
loop = bcc.loop
|
||||||
loop.create_task(self.__main())
|
if loop.run_until_complete(self.__main()):
|
||||||
|
return
|
||||||
|
loop.add_signal_handler(signal.SIGINT, lambda: loop.stop())
|
||||||
loop.run_forever()
|
loop.run_forever()
|
||||||
|
loop.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user