当前位置: 首页 > news >正文

使用asyncua模块的call_method方法调用OPC UA的Server端方法报错:asyncio.exceptions.TimeoutError

使用asyncua模块的call_method方法调用OPC UA的Server端方法报错:asyncio.exceptions.TimeoutError

报错信息如下:

在这里插入图片描述

Traceback (most recent call last):
asyncio.run(main())
File “D:\miniconda3\envs\py31013\lib\asyncio\runners.py”, line 44, in run
return loop.run_until_complete(main)
File “D:\miniconda3\envs\py31013\lib\asyncio\base_events.py”, line 649, in run_until_complete
return future.result()
File “”, line 60, in main
async with Client(url=url) as client:
File “D:\miniconda3\envs\py31013\lib\site-packages\asyncua\client\client.py”, line 98, in aexit
await self.disconnect()
File “D:\miniconda3\envs\py31013\lib\site-packages\asyncua\client\client.py”, line 348, in disconnect
await self.close_session()
File “D:\miniconda3\envs\py31013\lib\site-packages\asyncua\client\client.py”, line 703, in close_session
return await self.uaclient.close_session(True)
File “D:\miniconda3\envs\py31013\lib\site-packages\asyncua\client\ua_client.py”, line 366, in close_session
data = await self.protocol.send_request(request)
File “D:\miniconda3\envs\py31013\lib\site-packages\asyncua\client\ua_client.py”, line 167, in send_request
data = await asyncio.wait_for(self._send_request(request, timeout, message_type), timeout if timeout else None)
File “D:\miniconda3\envs\py31013\lib\asyncio\tasks.py”, line 458, in wait_for
raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError

解决asyncio.exceptions.TimeoutError的方法如下:

OPC UA Client python asyncua error when connecting and disconnecting

在这里插入图片描述

这篇文章中说明了报错:asyncio.exceptions.TimeoutError的原因,是由于call_method调用的方法执行时间太长了,但是Client端同步执行的检查服务是否处于在线状态的背景任务执行超时了,最终导致抛出报错:asyncio.exceptions.TimeoutError,拿不到Server执行调用方法后的结果。

解决措施是在开启Client会话的函数里面增加timeout超时时间,并且将timeout设置大于Client调用Server端方法的执行时间,将timeout设置成一个比较大的数。

相关文章:

  • 浅谈目标检测之YOLO(You Only Look Once)v1
  • Linux PXE高效批量装机
  • Postman下发流表至Opendaylight
  • ######## golang各章节终篇索引 ########
  • FreeSWITCH 检查忙音
  • leetcode(top 100) 三数之和 相向双指针
  • C# Task 包含 await ConfigureAwait CancellationTokenSource
  • RabbitMQ快速入门
  • python包管理器--- pip、conda、mamba的比较
  • npm install 安装不成功,node-sass缺失,提示python环境缺失的解决办法
  • Kafka内外网分流配置listeners和advertised.listeners
  • Spring Cache
  • idea开发工具清除Git凭证(含Git凭证管理策略)
  • [Bug]使用gradio创建应用提示AttributeError: module ‘gradio‘ has no attribute ‘inputs‘
  • Unity2D计算两个物体的距离
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  •  D - 粉碎叛乱F - 其他起义
  • ERLANG 网工修炼笔记 ---- UDP
  • Hexo+码云+git快速搭建免费的静态Blog
  • Intervention/image 图片处理扩展包的安装和使用
  • java 多线程基础, 我觉得还是有必要看看的
  • Mac转Windows的拯救指南
  • MobX
  • MySQL QA
  • Python socket服务器端、客户端传送信息
  • QQ浏览器x5内核的兼容性问题
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 创建一种深思熟虑的文化
  • 从PHP迁移至Golang - 基础篇
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 你真的知道 == 和 equals 的区别吗?
  • 如何学习JavaEE,项目又该如何做?
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 推荐一个React的管理后台框架
  • 我这样减少了26.5M Java内存!
  • 项目实战-Api的解决方案
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #APPINVENTOR学习记录
  • #NOIP 2014# day.2 T2 寻找道路
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (28)oracle数据迁移(容器)-部署包资源
  • (4)logging(日志模块)
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (第30天)二叉树阶段总结
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (七)Activiti-modeler中文支持
  • (区间dp) (经典例题) 石子合并
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)可以带来幸福的一本书
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .cn根服务器被攻击之后