我有一个项目,需要从字面上解析成千上万的HTML和XML文档。
我认为这将是一个学习Ruby纤程和新的Goliath框架的绝佳机会。
但是很明显,如果你使用阻塞库,Goliath就会失败。但问题是,我不知道如何区分什么是“线程安全”(如果这是Goliath的正确术语)。
所以我的问题是,一般情况下,Nokogiri是否会导致Goliath或多线程/纤程的问题?
如果是这样,有没有比Nokogiri更安全的东西可以使用?
谢谢
发布于 2011-04-25 22:55:11
Goliath是一个web框架,所以我假设你计划通过HTTP“摄取”这些文档?每个请求都被映射到一个ruby纤程中,但实际上,服务器是在单个反应器线程中运行的。
所以,回答你的问题:据我所知,Nokogiri是线程安全的,但这在这里其实并不重要。您需要注意的是:在解析文档时,CPU会被锁定,Goliath在此期间不会接受任何新的请求。因此,您必须实现正确的逻辑来处理您的特定情况(例如:您可以对来自套接字的数据块进行流解析,或者在多个goliath服务器之间进行负载平衡,或者同时执行这两种操作... :-))
https://stackoverflow.com/questions/5622074
复制相似问题