如何同步多个Workling工作人员?

时间:2010-04-19 07:45:46

标签: ruby-on-rails ruby workling

我有以下情况:

  • 三项任务:A,B,C(实施为工作工人)
  • 两个用户事件(控制器方法的调用)

任务以这种方式触发:

  1. 第一个用户事件触发任务A和任务B.
  2. 然后,可选的用户事件可以触发任务C,但在任务A和B完成之前,该任务不能运行。
  3. 我如何强制执行这一系列事件?

    一种方法是在任务C开始时执行任务A和B,但触发任务C的用户事件可能永远不会发生,但是必须执行任务A和B。

    在“正常”程序中,我可以使用整个同步对象库(互斥体,信号量,关键部分......)。但我能在这做什么呢?

    (如果重要,Rails应用程序将在Linux服务器上运行,而Workling设置为使用Starling)

1 个答案:

答案 0 :(得分:1)

您可以使用分布式锁:

http://github.com/tanin47/ruby_redis_lock(这是我的)

但它需要Redis。

或者,您可以自己与其他dbms一起构建一个锁库,例如:的MySQL。