pnz / messenger-filesystem-transport
此包已被废弃,不再维护。未建议替代包。
Symfony Messenger 文件系统传输。
v0.1.3
2019-01-01 13:22 UTC
Requires
- php: ^7.1
- symfony/filesystem: ^4.1
- symfony/lock: ^4.1
- symfony/messenger: ^4.2.0
- symfony/serializer-pack: ^1.0
Requires (Dev)
- phpunit/phpunit: ^7.2
Suggests
- ext-pcntl: For handling system level signals
This package is auto-updated.
Last update: 2023-10-25 18:18:01 UTC
README
扩展了 Symfony Messenger 组件以处理文件系统传输。队列通过从文件系统中存储和检索消息在本地处理。
队列实现为 LIFO(后进先出)列表,以优化文件系统使用和读写操作。
安装
composer require pnz/messenger-filesystem-transport
此传输处理 filesystem://
协议,使用 FilesystemTransportFactory
创建传输。
Symfony 配置:使用 Filesystem Transport Bundle 包。
不使用 Symfony 包安装
- 注册传输工厂
# config/services.yaml Pnz\Messenger\FilesystemTransport\FilesystemTransportFactory: arguments: $serializer: '@messenger.transport.symfony_serializer' # The following lines are not needed if "autowire" is enabled $filesystem: '@filesystem' $lockFactory: '@lock.factory' # Enable the `filesystem://` transport to be auto-discovered, this is not needed when "autoconfigure" is enabled tags: ['messenger.transport_factory']
- 配置文件系统传输
# config/packages/messenger.yaml parameters: # The path *MUST* specify an absolute path of the directory where the queue will be stored # Example1: the queue messages will be stored in the project's `var/queue` directory env(MESSENGER_TRANSPORT_DSN): "filesystem://%kernel.project_dir%/var/queue" # Example2: use the `/tmp/queue` directory (note the triple `/`) env(MESSENGER_TRANSPORT_DSN): "filesystem:///tmp/queue" framework: messenger: transports: filesystem: '%env(resolve:MESSENGER_TRANSPORT_DSN)%' routing: App\Message\MyMessage: filesystem
配置
DSN 包含以下查询参数
compress
:启用/禁用消息存储的压缩(gzinflate/gzdeflate),使用compress=true
(默认:false)loop_sleep
:定义循环之间的睡眠间隔(微秒),使用loop_sleep=MICRO-SECONDS
(默认:500000)
示例
# .env # Enable compression, and sleep for 0.8 seconds during loops if the queue is empty MESSENGER_TRANSPORT_DSN="filesystem://%kernel.project_dir%/var/queue/default?compress=true&loop_sleep=800000"