커널 # 트랩을 사용하여 신호를 잡으려고하고 해당 컨텍스트에서 데이터베이스 요청을 실행하려고하는데 위 오류가 나타납니다 . 그 누구도 전에 우연히 만났습니까? 그 주위에 어떤 방법이 있습니까?MongoDB Ruby 드라이버 - 'synchronize': 트랩 컨텍스트에서 호출 할 수 없습니다.
샘플 코드 :
trap('HUP') do
$db[:db_name].update({_id: 123}, {:$set => {a: 1}})
end
loop { sleep 1 }
이 오류를 줄 것이다 :
스크립트가kill -HUP {pid}
를 실행하여 전송할 수 HUP 신호를 수신
/usr/local/lib/ruby/gems/2.1.0/gems/mongo-1.11.1/lib/mongo/connection/pool.rb:266:in `synchronize': can't be called from trap context (ThreadError)
. $ db는 MongoDB 객체 여야합니다.
질문에 관련 코드를 삽입하면 사용자가 묻는 질문의 컨텍스트가 향상됩니다. 관련 코드로 질문을 수정하면 도움이됩니다. –