代码之家  ›  专栏  ›  技术社区  ›  Daniel Rikowski

如何同步多个工作人员?

  •  1
  • Daniel Rikowski  · 技术社区  · 15 年前

    我有以下情况:

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

    任务的触发方式如下:

    1. 第一个用户事件触发任务A和任务B。
    2. 然后,可选的用户事件可以触发任务c,但该任务必须在任务a和b完成后才能运行。

    我如何执行这一连串的事件?

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

    在一个“普通”程序中,我可以使用所有的同步对象(互斥锁、信号量、关键部分等)。但我在这里能做什么?

    (如果重要的话,rails应用程序将在linux服务器上运行,并且将工作设置为使用starling)

    1 回复  |  直到 13 年前
        1
  •  1
  •   Tanin    13 年前

    您可以使用分布式锁:

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

    不过,它需要redis。

    或者,您可以自己用其他dbms(例如mysql)构建一个锁库。

    推荐文章