genesis-global/gps-messenger-bundle

petitpress/gps-messenger-bundle 的分支,支持 PHP 7.3

安装次数: 1,081

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 15

类型:symfony-bundle

1.3 2021-08-20 06:05 UTC

README

此包为 Symfony Messenger 提供了 Google Pub/Sub 传输的简单实现。

该包只需要 symfony/messengergoogle/cloud-pubsubsymfony/options-resolver 包。与 Enqueue GPS 传输 相比,它不需要 Enqueue一些桥接。它支持使用 OrderingKeyStamp 对消息进行排序,并且不是过时的。

安装

步骤 1:安装包

在容器内执行以下命令以下载包的最新版本

$ composer require petitpress/gps-messenger-bundle --no-scripts

步骤 2:配置环境变量

官方的 Google Cloud PubSub SDK 需要一些全局可访问的环境变量。

您可能需要将默认的 Symfony DotEnv 实例更改为使用 putenv,因为 Google 需要通过 getenv 访问一些变量。为此,在 config/bootstrap.php 中使用 putenv 方法。

(new Dotenv())->usePutenv()->...

Google Pub/Sub 可配置变量列表

# use these for production environemnt:
GOOGLE_APPLICATION_CREDENTIALS='google-pubsub-credentials.json'
GCLOUD_PROJECT='project-id'

# use these for development environemnt (if you have installed Pub/Sub emulator):
PUBSUB_EMULATOR_HOST=https://:8538

步骤 3:配置 Symfony Messenger

# config/packages/messenger.yaml

framework:
    messenger:
        transports:
            gps_transport:
                dsn: 'gps://default'
                options:
                    key_file_path: /path/to/gcp-key.json #optional. Can be used instead of setting environment variables.
                    max_messages_pull: 10 # optional (default: 10)
                    topic: # optional (default name: messages)
                        name: 'messages'
                    queue: # optional (default the same as topic.name)
                        name: 'messages'
                    batch_size: 0 # optional (default: 0) If set above 0 it uses pubsubs batch publisher 

# config/packages/messenger.yaml

framework:
    messenger:
        transports:
            gps_transport:
                dsn: 'gps://default/messages?max_messages_pull=10&key_file_path=/path/to/gcp-key.json'

步骤 4:如果需要,使用可用的戳记

  • OrderingKeyStamp:用于保持同一上下文中消息的顺序。有关更多信息,请参阅 官方文档