baa*_*h05 5 schema ruby-on-rails resque
我正在创建一个postgres多租户环境.所以客户端A有schema_1,B有schema_2等.
现在我不知道我将拥有的所有客户端,所以我有一个简单的小rake任务来根据Tenant表中的数据创建新的模式.所有完全动态:要添加新客户端,添加一个新租户,并做一个佣金租户:db:migrate .. tada所有的表都在那里,客户有自己的小世界.(未知的客户名单,但注册时的小问题不是问题)
一切都很好......
除了后台工作.
我希望为每个客户端提供不同的队列.
http://blog.kabisa.nl/2010/03/16/dynamic-queue-assignment-for-resque-jobs/仍然使用硬编码队列.它可以在您编写代码时知道两个之间进行选择,但它们仍然不是真正的动态..不是真的.
所以我的问题是.我有一个字符串"tenant_1"描述我的客户世界.
如何使用该字符串创建仅包含"他"作业的队列.
如何创建真正的动态队列?
任何人都像我一样遇到这个问题,我在源头找到了答案.
Resque版本1.x(稳定版)列出了这个/lib/resque.rb,并且看起来比直接访问Resque中的Job模块更好的调用方法.
# This method is considered part of the `stable` API.
def enqueue_to(queue, klass, *args)
Run Code Online (Sandbox Code Playgroud)
使用本身,对我来说完美无瑕.
Resque.enqueue_to(:my_queue, MyWorker, :my_argument)
Run Code Online (Sandbox Code Playgroud)
Resque::Job.create("client#{client_id}", MyWorker, 3);
这对我们有用。
| 归档时间: |
|
| 查看次数: |
2904 次 |
| 最近记录: |