gpt4 book ai didi

python - 向主题发送消息时,适用于 Python 的 Azure 服务总线 SDK 导致读取超时

转载 作者:行者123 更新时间:2023-12-03 04:42:08 24 4
gpt4 key购买 nike

在我的应用程序中,我根据本地事件向主题发送消息。在我遇到网络问题之前,这种方法效果很好。

在网络方面,我的设备正在通过一个提供主要/辅助互联网连接的接入点。主要连接是通过 ADSL 线路进行的,但如果出现故障,则会切换到 LTE 网络。发生切换时,我的设备的 IP 地址保持不变(因为该地址位于本地网络上并通过 DHCP 分配)。

当发生这种切换时,我发现发送命令有错误。我获取本地事件并尝试向服务总线发送消息。第一次发送会导致“ReadTimeout”,但后续发送就可以了。然后,我获取另一个本地事件并尝试另一个发送,并且该过程会重复进行。如果我重新启动设备,那么一切都会正常。

这是堆栈跟踪:

File "/usr/sbin/srvc/sb.py", line 420, in ReadTimeout: HTTPSConnectionPool(host='****.servicebus.windows.net', port= 443): Read timed out. (read timeout=65) Traceback (most recent call last):
File "/usr/sbin/srvc/sb.py", line 420, in peek_lock=False, timeout=sb_timeout) File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservic e.py", line 976, in receive_subscription_message timeout) File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservic e.py", line 762, in read_delete_subscription_message response = self._perform_request(request) File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservic e.py", line 1109, in _perform_request resp = self._filter(request) File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/_http/httpclient .py", line 181, in perform_request self.send_request_body(connection, request.body) File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/_http/httpclient .py", line 145, in send_request_body connection.send(None) File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/_http/requestscl ient.py", line 81, in send self.response = self.session.request(self.method, self.uri, data=request_bod y, headers=self.headers, timeout=self.timeout) File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 457, in req uest resp = self.send(prep, **send_kwargs) File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 569, in sen d r = adapter.send(request, **kwargs) File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 422, in sen d raise ReadTimeout(e, request=request) ReadTimeout: HTTPSConnectionPool(host='****.servicebus.windows.net', port= 443): Read timed out. (read timeout=65)

最佳答案

根据我的经验,我认为这是嵌入式应用程序的程序流程问题。

您可以尝试添加一个测试功能,在设备切换网络适配器后,每隔几秒对服务总线主机进行 ping 操作,直到网络正常返回 bool 值以启动新连接。同时,统计 ping 直到指定值以调用 shell 命令,如 service network restartifconfig <eth-id> down && ifconfig <eth-id> up重新启动相关网络适配器。

这只是一个想法。您能否提供一些代码以提供更多有用的帮助?

关于python - 向主题发送消息时,适用于 Python 的 Azure 服务总线 SDK 导致读取超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35045604/

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