genesis-global / gps-messenger-bundle
petitpress/gps-messenger-bundle 的分支,支持 PHP 7.3
1.3
2021-08-20 06:05 UTC
Requires
- php: >=7.2.0
- ext-json: *
- google/cloud-pubsub: ^1.29
- symfony/messenger: ^4.4|^5.1
- symfony/options-resolver: ^4.4|^5.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- jangregor/phpstan-prophecy: ^0.8.1
- phpspec/prophecy-phpunit: ^1.1
- phpstan/phpstan: ^0.12.64
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-09-20 12:44:58 UTC
README
此包为 Symfony Messenger 提供了 Google Pub/Sub 传输的简单实现。
该包只需要 symfony/messenger
、google/cloud-pubsub
和 symfony/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
:用于保持同一上下文中消息的顺序。有关更多信息,请参阅 官方文档。