cakephp / cakephp/queue

[InvalidArgumentException] Unknown connection scheme: 'redis'

未关闭
#48 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
PHP
星标
36
派生
22
平均合并
20 小时 36 分钟
30 天内合并 PR
2

描述

I've been trying this plugin for mailing purpose. Somehow I've an issue connecting to redis.

When I'm using predis directly, I can't connect and submit my data to the redis.

This is my stack trace

2021-01-20 08:33:30 Error: [InvalidArgumentException] Unknown connection scheme: 'redis'. in C:\Dev\www\emailtemplate\vendor\predis\predis\src\Connection\Factory.php on line 87
Stack Trace:
- C:\Dev\www\emailtemplate\vendor\predis\predis\src\Client.php:120
- C:\Dev\www\emailtemplate\vendor\predis\predis\src\Client.php:59
- C:\Dev\www\emailtemplate\vendor\enqueue\redis\PRedis.php:126
- C:\Dev\www\emailtemplate\vendor\enqueue\redis\RedisConnectionFactory.php:105
- C:\Dev\www\emailtemplate\vendor\enqueue\redis\RedisConnectionFactory.php:89
- call_user_func - [internal], line ??- C:\Dev\www\emailtemplate\vendor\enqueue\redis\RedisContext.php:160
- C:\Dev\www\emailtemplate\vendor\enqueue\redis\RedisProducer.php:70
- C:\Dev\www\emailtemplate\vendor\enqueue\enqueue\Client\Driver\GenericDriver.php:225
- C:\Dev\www\emailtemplate\vendor\enqueue\enqueue\Client\Driver\GenericDriver.php:62
- C:\Dev\www\emailtemplate\vendor\enqueue\enqueue\Client\Producer.php:121
- C:\Dev\www\emailtemplate\vendor\enqueue\enqueue\Client\Producer.php:53
- C:\Dev\www\emailtemplate\vendor\enqueue\simple-client\SimpleClient.php:185
- C:\Dev\www\emailtemplate\vendor\cakephp\queue\src\QueueManager.php:217
- C:\Dev\www\emailtemplate\vendor\cakephp\queue\src\Mailer\QueueTrait.php:53
- C:\Dev\www\emailtemplate\src\Controller\Api\EmailsController.php:120
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Controller\Controller.php:529
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Controller\ControllerFactory.php:79
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\BaseApplication.php:251
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:77
- C:\Dev\www\emailtemplate\vendor\cakephp\authorization\src\Middleware\AuthorizationMiddleware.php:129
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:73
- C:\Dev\www\emailtemplate\vendor\cakephp\authentication\src\Middleware\AuthenticationMiddleware.php:122
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:73
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Routing\Middleware\RoutingMiddleware.php:166
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:73
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Middleware\BodyParserMiddleware.php:174
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:73
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Routing\Middleware\RoutingMiddleware.php:166
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:73
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Routing\Middleware\AssetMiddleware.php:68
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:73
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Error\Middleware\ErrorHandlerMiddleware.php:121
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:73
- C:\Dev\www\emailtemplate\vendor\cakephp\debug_kit\src\Middleware\DebugKitMiddleware.php:60
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:73
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Runner.php:58
- C:\Dev\www\emailtemplate\vendor\cakephp\cakephp\src\Http\Server.php:90
- C:\Dev\www\emailtemplate\webroot\index.php:40

My configuration look like this.

'DebugKit' => [
        'ignoreAuthorization' => true,
    ],
	
	'Queue' => [
		'default' => [
			  // A DSN for your configured backend. default: null
			  'url' => 'redis:',
			  //'url' => 'redis://127.0.0.1:6397',

			  // The queue that will be used for sending messages. default: default
			  // This can be overriden when queuing or processing messages
			  'queue' => 'default',

			  // The name of a configured logger, default: null
			  'logger' => 'stdout',

			  // The name of an event listener class to associate with the worker
			  //'listener' => \App\Listener\WorkerListener::class,
		]
	],

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

从 issue 中显示的 Queue 配置开始,通过提到的 RedisConnectionFactory.php 和 PRedis.php 条目跟踪 Redis 连接。复现报告的未知 scheme 错误,然后验证已配置的 Redis DSN 能够被接受,并且 queued mail 可以在不出现此异常的情况下连接。

由索引模型根据 Issue 内容生成。

评估

技术栈
php, redis
领域
backend, distributed-systems
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
停滞
描述清晰度
基本清楚
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。