使用Ruby 2.0从Ruby on Rails中的信号处理程序中删除记录失败并显示错误

时间:2013-06-16 21:25:24

标签: ruby-on-rails ruby-2.0 signal-handling

我有一组Ruby守护进程,在启动时,在运行守护进程的表中写入信息。守护进程永远运行或直到它们收到信号。信号处理程序删除数据库中守护程序的记录。在Ruby 2.0之前,它运行良好。从2.0开始,我收到错误lock': can't be called from trap context (ThreadError)Investigation表示Ruby不允许在信号处理程序中使用此(并记录),因为它可能会引入种族和死锁条件。很公平。但似乎我正在寻找的是合理的。那么这样做的正确方法是什么?设置标志和民意调查看起来真的很难看。当然有更好的方法。

0 个答案:

没有答案