2009-05-24 1 views
2

Кто-нибудь когда-нибудь видел много ошибок, как это:использует резьбу и рубиновый механизированный сейф?

Exception `Net::HTTPBadResponse' at /usr/lib/ruby/1.8/net/http.rb:2022 
- wrong status line: _SOME HTML CODE HERE_ 

При использовании потоков и механизировать? Я относительно уверен, что это плохое поведение между потоками и библиотекой net/http, но делает у кого-нибудь есть какие-либо советы относительно верхнего предела потоков, которые вы хотите , чтобы запустить сразу при использовании mechanize/nethttp? И как я могу зафиксировать это исключение, потому что rescue Net::HTTPBadResponse не работает?

ответ

1

Это может быть что-то небезобезопасное в Mechanize, но я могу думать о других ошибках, которые могут вызвать ту же проблему. Я бы начал отключать постоянные соединения, если вы их используете. Следующее, что нужно сделать, это посмотреть на свой код и убедиться, что вы осторожны с объектами, которые вы обрабатываете. Если ваше приложение имеет несколько потоков с общими объектами, это может сломать библиотеку, которая в противном случае была бы потокобезопасной.

Если есть проблема с потоками, верхний предел потоков, которые вы можете использовать безопасно, - это 1. Больше, и вы просто делаете компромисс о том, как часто вы хотите, чтобы проблема возникла, а не это происходит или нет.

0

Основываясь на моем изнурительном опыте в этот вечер, пытаясь получить две задачи, связанные с Механизацией, запускаться в тандеме в Event Machine и this somewhat ancient exchange, нет, похоже, что это не поточно-безопасный.

0

Согласно this email by Aaron Patterson himself, если вы не используете агент между потоками, вы должны быть в порядке.

ИМХО, это означает, что Механизм не является потокобезопасным.

Смежные вопросы