第 3 章 事件驱动的 API
AMQ 客户端提供的许多 API 都是异步、事件驱动的 API。其中包括 C++、JavaScript、Python 和 Ruby API。
这些 API 通过执行应用程序事件处理功能来响应网络活动,从而发挥作用。库监控网络 I/O,并触发事件。事件处理程序按顺序在主库线程上运行。
由于事件处理程序在主库线程上运行,处理程序代码不得包含任何长时间运行的阻止操作。在事件处理程序中阻止所有库执行.如果您需要执行较长的阻塞操作,则必须在一个单独的线程中调用它。事件驱动的 API 包括跨线程通信功能,以支持库线程和应用程序线程之间的协调。
避免在事件处理程序中阻塞
在事件处理程序中长时间运行的阻止调用会停止所有库执行,从而阻止库处理其他事件并执行定期任务。始终在单独的应用程序线程中启动长时间运行的阻止程序。