定制 emag-tech-labs/messenger-mongo-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

emag-tech-labs/messenger-mongo-bundle

Composer 安装命令:

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

包简介

A Mongo transport for the Symfony Messenger component

README 文档

README

Packagist Version GA build codecov Mutation testing badge
This bundle offers a new type of transport for the Symfony Messenger component. While MongoDB is not the best tool to be used as a queue, sometimes it's more convenient to use the tools that your application already uses. For example, if your application already uses MongoDB and you want a persistent storage for the failed messages, I think it's quite handy to use MongoDB as a storage.

Installation

The recommended way to install the bundle is through Composer:

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

Configuration & usage

Take a look here if you need to find out how to configure the driverOptions, uriOptions and dsn options.

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

The features described here can be used also, therefore the following commands are available in order to manually debug the failed messages:

# 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

Defining an index for the messages collection

The MongoDB collections where messages are stored (default messenger_queue) should have the following index defined:

{ available_at: 1 }

Without the index, the performance may degrade significantly with a large number of items (100k+) in the queue.

Submitting bugs and feature requests

If you found a nasty bug or want to propose a new feature, you're welcome to open an issue or create a pull request here.

emag-tech-labs/messenger-mongo-bundle 适用场景与选型建议

emag-tech-labs/messenger-mongo-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 217.23k 次下载、GitHub Stars 达 16, 最近一次更新时间为 2020 年 04 月 23 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 emag-tech-labs/messenger-mongo-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 emag-tech-labs/messenger-mongo-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 emag-tech-labs/messenger-mongo-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 217.23k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 16
  • 点击次数: 21
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 16
  • Watchers: 6
  • Forks: 13
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-04-23