2009-05-24 11 views
2

Sieht das jemand jemals eine Menge Fehler wie:verwendet Gewinde und Rubin Mechanisieren sicher?

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

Wenn Threads und mechanisieren? Ich bin relativ sicher, dass dies etwas schlechtes Verhalten zwischen Threads und der net/http-Bibliothek ist, aber hat jemand einen Rat, soweit die Obergrenze der Threads auf einmal laufen lassen, wenn Sie mechanize/nethttp verwenden? Und wie kann ich diese Art von Ausnahme erfassen, weil rescue Net::HTTPBadResponse nicht funktioniert?

Antwort

1

Dies könnte in Mechanize nicht Thread-sicher sein, aber ich kann mir andere Fehler vorstellen, die das gleiche Problem verursachen könnten. Ich würde damit beginnen, dauerhafte Verbindungen zu deaktivieren, wenn Sie sie verwenden. Als Nächstes müssen Sie sich Ihren Code ansehen und sicherstellen, dass Sie mit den Objekten, die Sie behandeln, vorsichtig umgehen. Wenn Ihre Anwendung mehrere Threads hat, die sich mit gewöhnlichen Objekten herumschlagen, kann das eine Bibliothek beschädigen, die sonst Thread-sicher wäre.

Wenn irgendwo ein Threading-Problem auftritt, ist die Obergrenze für Threads, die Sie sicher verwenden können, 1. Noch mehr, und Sie machen nur einen Kompromiss darüber, wie oft das Problem auftreten soll es kommt vor oder nicht.

0

Basiert auf meiner zermürbenden Erfahrung, die heute Abend versucht, zwei Mechanize-basierte Aufgaben in Event Machine und this somewhat ancient exchange hintereinander laufen zu lassen, nein, es scheint, dass es nicht Thread-sicher ist.