是否可以启动 resque-web 监听 redis 套接字?

发布于 2024-11-29 06:08:39 字数 228 浏览 2 评论 0原文

我已经禁用了redis监听端口6379并启用了websocket。它在我的应用程序中运行得非常好,但是当我启动 resque-web 时,它会继续通过网络接口监听并失败并显示消息:

无法连接到 Redis! (redis://127.0.0.1:6379/0)

有人知道是否可以让 resque-web 使用套接字而不是网络?

提前致谢

I have disabled redis listening to port 6379 and enabled the websocket. It works wonderfully from my application, but when I launch resque-web it keeps listening trough network interface and fails with message:

Can't connect to Redis! (redis://127.0.0.1:6379/0)

Someone knows if it's possible to make resque-web use the socket instead of the network?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

束缚m 2024-12-06 06:08:39

我一直在阅读 resque-web 的代码,我意识到它会在内部加载您作为命令参数提供的任何路径。所以我创建了一个简单的 ruby​​ 脚本,它使用 redis gem 连接到 Redis,然后将此实例分配给 Resque.redis:

刚刚创建了一个名为“resque-web-hack.rb”的文件:

require 'redis'
require 'resque'
$redis = Redis.new(:path => '/tmp/redis.sock')
Resque.redis = $redis

然后像这样使用它

$ resque-web /path/to/my/file/resque-web-hack.rb

: hack,但现在对我有用......

I've been reading resque-web's code and I realized that it internally loads any path you provide as parameter to the command. So I have created a plain ruby script that connects to Redis with redis gem and then assigns this instance to Resque.redis:

Just created a file called 'resque-web-hack.rb':

require 'redis'
require 'resque'
$redis = Redis.new(:path => '/tmp/redis.sock')
Resque.redis = $redis

And then used it like this:

$ resque-web /path/to/my/file/resque-web-hack.rb

It's just a hack, but it works for me by now...

探春 2024-12-06 06:08:39

我刚刚解决了同样的问题:)所以这里是解决方案

在我的 ./config/resque.yml 中我有这一行

development: /tmp/redis.sock

这是我的 RAILS_ROOT/config/initializers/resque.rb

rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/../..'
rails_env = ENV['RAILS_ENV'] || 'development'

resque_config = YAML.load_file(rails_root + '/config/resque.yml')
if resque_config[rails_env] =~ /^\// # using unix socket
    Resque.redis = Redis.new(:path => resque_config[rails_env])
else 
   Resque.redis = resque_config[rails_env]
end

I just fixed same problem :) So here is the solution

In my ./config/resque.yml I have this line

development: /tmp/redis.sock

This is my RAILS_ROOT/config/initializers/resque.rb

rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/../..'
rails_env = ENV['RAILS_ENV'] || 'development'

resque_config = YAML.load_file(rails_root + '/config/resque.yml')
if resque_config[rails_env] =~ /^\// # using unix socket
    Resque.redis = Redis.new(:path => resque_config[rails_env])
else 
   Resque.redis = resque_config[rails_env]
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文