0

我的 rails 应用程序由一个API 服务器和一个Admin 服务器组成。两者都使用resque作业。

在我的本地开发环境中,他们每个人都有一个 Procfile 并使用相同的 redis 服务器。我遇到的问题是我无法控制哪个服务器正在接受哪个工作。每个服务器都有不同的队列,但它们似乎是在“unregister_worker”例程中提取的。

/ruby-1.9.3-p194/gems/resque-1.24.1/lib/resque/worker.rb:459:in `unregister_worker'

我在我的调用堆栈中看到了这个,它导致了一个 ruby​​ 错误,因为它不知道这个类。

如何告诉 resque 忽略“unregister_worker”?只是为了澄清我没有与“*”队列关联的工作任务。

作为一种解决方法,我可以像在生产环境中那样在本地运行两个 redis 服务器,但如果可以的话,我想避免这种情况。

4

1 回答 1

0

Redis 命名空间正是这样做的。在 'config/initializers/resque.rb' 中指定队列的命名空间:

Resque.redis.namespace = "resque:admin_server"    

在此处找到解决方案: 如何开始 resque 以使用 Resque.redis.namespace?

于 2013-05-29T00:06:04.397 回答