gpt4 book ai didi

python - 如果服务之间存在依赖关系,NaoQi 将按什么顺序杀死这些服务?

转载 作者:行者123 更新时间:2023-11-30 22:10:02 31 4
gpt4 key购买 nike

例如,我有一个 RequestService 负责发出请求,以及 LogHandler 加载了 /home/nao/naoqi/preferences/autoload.ini LogHandler 的想法是处理所有日志(在 LogManager 服务的帮助下)并向远程服务器发出此日志的请求。此外,LogHandler 还处理系统启动和关闭时的事件。为了处理关闭,我使用了在 app.run() 方法之后触发的逻辑(我使用了 this idea )。

问题是:如果LogHandler依赖于RequestService,是否可以保证操作系统会先杀死LogHandler,然后 >RequestService 或存在杀死 RequestService 的风险 - 在这种情况下,LogHandler 将无法向远程服务器发送请求。在这种情况下,以独立于 RequestService 的方式实现 LogHandler 可能是更好的主意?

# init of the LogHandler
app = qi.Application(url=ROBOT_URL)
app.start()
session = app.session

request_service = session.service("request_service")

on_os_start(request_service)
...
app.run()
...
on_os_shutdown(request_service)
app.stop()

在系统关闭的情况下我可以依赖request_service吗?

最佳答案

不,没有“官方”服务关闭顺序,因此即使您的服务按特定顺序关闭,也不能保证它们会在不同的上下文或系统版本中继续这样做。

最好的方法是减少服务之间的依赖关系,尤其是在启动和关闭等关键时刻。所以回答你的问题......

In this scenario may be a better idea to implement the LogHandler in such a way as to be independent from the RequestService?

...是的,这是一个更好的主意。

我什至不确定为什么您希望 requests_service 位于不同的服务中(或者这只是一个示例?)。我有时会做的是拥有提供有用功能的辅助 python 库,并从多个不同的服务导入相同的库;这样我就可以共享功能而无需重复代码(除了代码重复之外,您可能还有其他原因想要集中处理请求)。

关于python - 如果服务之间存在依赖关系,NaoQi 将按什么顺序杀死这些服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51768993/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com