emag-tech-labs/messenger-mongo-bundle

用于Symfony Messenger组件的Mongo传输

1.3.0 2024-03-29 22:21 UTC

This package is auto-updated.

Last update: 2024-08-29 23:08:42 UTC


README

Packagist Version GA build codecov Mutation testing badge
此包为Symfony Messenger组件提供了一个新的传输类型。虽然MongoDB不是最佳的消息队列工具,但有时使用应用程序已经使用的工具会更方便。例如,如果您的应用程序已经使用MongoDB,并且您希望对失败的消息进行持久存储,我认为使用MongoDB作为存储非常方便。

安装

推荐通过Composer安装该包

$ composer require emag-tech-labs/messenger-mongo-bundle

配置与使用

如果您需要了解如何配置driverOptionsuriOptionsdsn选项,请参考此处

framework:
    messenger:
        transports:
            hello_queue:
                dsn: mongodb://127.0.0.1:27017
                options:
                    uriOptions: []
                    driverOptions: []
                    database: symfony # required
                    collection: hello_messages # default is "messenger_queue"
                    queue: hello_queue # default is "default"
                    redeliver_timeout: 4800 # default is 3600
                    enable_writeConcern_majority: false # default is true

此处描述的功能此处也可使用,因此以下命令可用于手动调试失败的消息

# see all messages in the failure transport
$ php bin/console messenger:failed:show

# see details about a specific failed message
$ php bin/console messenger:failed:show 20 -vv

# view and retry messages one-by-one
$ php bin/console messenger:failed:retry -vv

# retry specific messages
$ php bin/console messenger:failed:retry 20 30 --force

# remove a message without retrying it
$ php bin/console messenger:failed:remove

# displays the number of queued messages in all transports
$ php bin/console messenger:stats

提交错误和功能请求

如果您发现了一个讨厌的错误或想提出一个新的功能,欢迎您在此提交问题或创建pull request。