0

我正在运行 Apache、Phusion Passenger、Ruby on Rails 网站。我有一个关键部分,我只能同时允许 1 次执行。我注意到 phusion 乘客使用 fork() 根据此文档为每个请求生成进程。由于它们是单独的进程,我注意到我所有的 Mutex.synchronize 都不起作用。我在临界区添加了一些日志,但我仍然注意到日志是交错打印的。

我尝试了所有这些:

  1. 互斥体同步
  2. Thread.exclusive
  3. 监控同步

它们都不起作用。

在这种情况下如何进行同步?非常感谢。

4

1 回答 1

0

Mutex、Monitor 和 Thread.exclusive 仅在单个进程中工作。对于进程间同步,使用锁定文件。请参阅文件#flock。

于 2013-09-07T09:54:49.370 回答