首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用laravel连接远程REDIS服务器

用laravel连接远程REDIS服务器
EN

Stack Overflow用户
提问于 2020-12-30 04:37:22
回答 1查看 1.7K关注 0票数 0

我已经做了一个instagram竞争者,需要能够处理视频转换(FFMPEG)在不同的服务器上,因为CPU的原因。

我的两个服务器都由同一个数据库连接。

目前,我有一个本地redis服务器在工作,这样我就可以使用默认的redis config/queue config/database将任务推送到后台。

到目前为止,所有这些都在工作,现在我想进入下一步,建立一个桥梁,将密集的任务传递给一个专门的服务器,只为执行视频处理任务。

来总结我想要的

1.从SERVER1调度作业,并将其发送到SERVER2 REDIS QUEUE进行处理。

SERVER1(默认)用于redis的连接(配置/队列)

代码语言:javascript
复制
'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => env('REDIS_QUEUE', 'default'),
        'retry_after' => 90,
        'block_for' => null,
    ],

SERVER1(默认)队列(配置/数据库)

代码语言:javascript
复制
'default' => [
        'url' => env('REDIS_URL'),
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', '6379'),
        'database' => env('REDIS_DB', '0'),
    ],

我所尝试的

SERVER2连接

代码语言:javascript
复制
'videoProcessingRedis' => [
        'driver' => 'redis',
        'connection' => 'videoRedisQueue',
        'queue' => env('REDIS_QUEUE', 'default'),
        'retry_after' => 90,
        'block_for' => null,
    ],

服务器2队列

代码语言:javascript
复制
'videoRedisQueue' => [
        'url' => env('REDIS_URL'),
        'host' => env('REDIS_HOST', 'https://website.ca/'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', '6379'),
        'database' => env('REDIS_DB', '0'),
    ],

Jobs/ConvertVideoForHLS

代码语言:javascript
复制
 public function __construct(video $video)
{
    $this->onConnection('videoProcessingRedis');
    $this->onQueue('videoRedisQueue');
    $this->video = $video;
}

使用上面的尝试设置,我不会得到任何错误,但是我无法查看作业,甚至看不到它已经创建。即使使用php构件队列:侦听php构件队列:听videoProcessingRedis,我看不到任何东西,在failed_jobs表中看不到任何东西,在我的中也看不到任何东西,所以我假设它与主机有什么关系?

构想1

SERVER2 redis服务器设置为面向公共的

1.在/etc/redis/redis.conf文件上设置绑定选项

在此之前

代码语言:javascript
复制
bind 127.0.0.1

之后

代码语言:javascript
复制
bind 0.0.0.0

设置绑定后的

  1. (允许所有访问的)
  2. I将在6379上添加一个端口限制,仅使用SERVER1 IP来连接

G 244

EN

回答 1

Stack Overflow用户

发布于 2021-01-20 17:49:24

在一个Redis队列上使用多个服务器时,需要确保这两个环境的APP_NAME变量具有相同的值。如果这些是不同的,那么工人将看不到工作。

要检查连接是否正常,可以从服务器1运行redis-cli -h {ip-of-server-2}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65502076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档