获取asyncua.sync.ThreadLoopNotRunning:断开连接后重试连接时出错

问题描述 投票:0回答:1

我使用asyncua库从OPC服务器获取数据。这是我在应用程序中使用的代码的简单示例,我随机收到这些错误。
描述错误 在disconnect()之后调用connect()会引发ThreadLoopNotRunning错误。

重现

>>> client = Client('opc.tcp://localhost')
>>> client.connect()
>>> client.disconnect()
>>> client.connect()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/project/venv/lib/python3.10/site-packages/asyncua/sync.py", line 95, in        wrapper
    result = self.tloop.post(aio_func(*args, **kwargs))
  File "/home/user/project/venv/lib/python3.10/site-packages/asyncua/sync.py", line 51, in post
    raise ThreadLoopNotRunning(f"could not post {coro}")
    asyncua.sync.ThreadLoopNotRunning: could not post <coroutine object Client.connect at               0x7faf0b51ace0>

在库中使用异步方法(async/await),但在我的应用程序中我使用这些await/async方法。这是上述错误或其他原因的可能原因吗?

python async-await opc-ua
1个回答
0
投票

该库当前有一个限制,即每次连接都需要一个新客户端。

有一个未解决的问题https://github.com/FreeOpcUa/opcua-asyncio/issues/1364

© www.soinside.com 2019 - 2024. All rights reserved.