这个项目能做什么

nestx-amqp 以 NestJS 模块形式提供 AMQP 连接,内部使用 amqp-connection-manager。该包已发布在 npm 上,并采用 MIT 许可证。 功能 - 提供 AmqpModule,可异步创建 AmqpConnectionManager。 - 提供全局可注入的 AMQP 连接管理器。 - 提供方法装饰器,如 @PublishQueue 和 @SubscribeQueue,便于简单使用。 安装 - yarn add nestx-amqp 用法 - 使用 AmqpModule.forRootAsync 异步注册模块,并提供连接 URL(例如 amqp://guest:guest@localhost:5672?heartbeat=60)。 - 使用 AMQP_CONNECTION 符号注入连接管理器。README 展示了一个抽象生产者示例,该生产者创建带有 json:true 的通道,并通过设置回调断言队列,等待连接后向队列发送消息。 装饰器 - @PublishQueue(queue: string | Queue, options?: amqplib.Options.Publish) 是用于向队列发布消息的方法装饰器。被装饰的方法接收内容及可选的发布选项。 - @SubscribeQueue(nameOrQueue: string | Queue, options?: ConsumeQueueOptions) 是用于消费消息的方法装饰器,包含简单的重新排队逻辑。ConsumeQueueOptions 结合了 prefetch、可选的 exceptionQueue 以及可选的重试设置(maxAttempts)。 - @PublishExchange(exchange: string | Exchange, options?: PublishExchangeOptions) 用于向交换机发布消息;README 标记该功能尚不稳定,并指向单元测试以了解用法。 - @UseAmqpConnection(name?: string) 用于指定与 @PublishQueue 或 @SubscribeQueue 配合使用的命名连接,在开发需要特定命名连接的 npm 包时推荐使用。 接口 - Queue:包含 name 和可选的 AssertQueue 选项。 - Exchange:包含 name、type(direct、fanout、topic、headers)以及可选的 AssertExchange 选项。 - PublishExchangeOptions:包含 routingKey 和可选的 Publish 选项。 - RetryOptions:包含 maxAttempts。 - BaseConsumeOptions:包含 prefetch 和可选的 exceptionQueue。 注意事项 - README 指出,装饰器目前仅支持直接队列的发布和订阅。 - 示例需要注册并启用 AmqpModule。 - 更多细节可在单元测试用例中查看,并引用了 CHANGELOG.md。