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