ValueError:使用 Stomp 时信号仅在主线程中起作用

joe*_*oes 10 python stomp web-scraping

当我运行此代码时,我收到此错误:

ValueError: signal only works in main thread
Run Code Online (Sandbox Code Playgroud)

我正在使用 ActiveMQ。

RealTor 是我的 Spider(selogerSpider) 的名称,它可以帮助我进行抓取。

ValueError: signal only works in main thread
Run Code Online (Sandbox Code Playgroud)

Jus*_*ram 4

这个问题与ActiveMQ没有任何关系。您滥用了信号。正如Python 文档所述:

\n
\n

Python 信号处理程序始终在主 Python 线程中执行,即使信号是在另一个线程中接收的。这意味着信号不能用作线程间通信的手段。您可以改用线程模块中的同步原语。

\n

此外,只有主线程才允许设置新的信号处理程序。

\n
\n

我相信该on_message方法是在它自己的线程中执行的,因为消息是异步接收的。

\n

简而言之,不要使用来自线程的信号。请改用线程模块中的同步原语。如果您无法避免使用信号,则在主线程上同步接收 STOMP 消息,而不是使用ConnectionListener.

\n