我使用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方法。这是上述错误或其他原因的可能原因吗?
该库当前有一个限制,即每次连接都需要一个新客户端。
有一个未解决的问题https://github.com/FreeOpcUa/opcua-asyncio/issues/1364