2011-02-10 73 views
1

有没有一种方法来设置BJ工作,并确保一定的“类型”的2不同时运行?有一种简单的方法来处理BJ并发性

我们正在运行24个独角兽,它将使一个BJ来启动,对于那些每一个。这不是什么大不了的事情,我们喜欢多个职位处理人员敲除后台任务。数据导入是个例外。我们希望能够告诉它不要同时运行其中的一个以上。

在北京这是可能的,或者我们应该动过的东西像resque?要做到这一点

回答

1

一种方法是约束你的数据导入工作到一定的优先级,并确保只有一个延迟工作正在加快优先的工作。例如,如果你想要让你的所有其它作业从优先级0运行到99,让您的数据导入作业的优先级100运行,那么你可以把所有的延迟的工作人员从0的MIN_PRIORITY运行的99 MAX_PRIORITY然后可以让一个延迟的工作人员从min_priority 100运行到max_priority 100,确保只有一个工作人员正在运行这些工作。这将确保没有两个导入数据作业(优先级100)同时运行。

+0

我们实际上使用后台作业不延迟作业https://github.com/jkraemer/bj ...这是问题的一部分,我们应该只是切换到延迟作业或resque – Ben 2011-02-10 15:19:48

相关问题