我正在创建一个不同类型的when爬虫,当我使用没有存储的Anemone来抓取一个站点时,它最终会因为内存问题而崩溃。
因此,我安装了Redis,redis-rb等,并更改了代码以使用redis存储。现在我从rails中得到一个错误,它没有完成爬行。它确实连接到redis,当我监视它时,我可以看到它的活动,但是它阻止爬行。
我测试了瑞迪斯,结果很好.
有什么主意吗??
错误
/usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:274:in /usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:198:inraw_call_command‘/usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:196:在map‘/usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:196:inraw_call_command’/usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:161:in call_command‘/usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:151:inmethod_missing‘海葵酮(0.5.0) lib/ anemone /storage/redis.rb:82:在rget’anemone (0.5.0) lib/ anemone /storage/redis.rb:41:ineach‘anemone (0.5.0) lib/ anemone /storage/redis.rb:40:在每个’anemone (0.5.0) lib/anemone/redis.rb:57:inkey‘anemone’anemone(0.5)。0) lib/ anemone /storage/redis.rb:12:初始化‘anemone (0.5.0) lib/anemone/storage.rb:30:innew’anemone (0.5.0) lib/anemone/storage.rb:30:in Redis‘app/controllers/processpages_controller.rb:332:incrawlnewsite’
红色信息系统监测结果:
+1297028372.281985“键”“海葵:页:*”
版本/环境:
redis:试用了版本2,和2.0.4 -相同的p roblem或版本rails。2.3.8,ruby 1.8.7修补程序174 os: centos 5 redis -缺省端口6379 hostgator /控制面板x
已安装宝石
海葵0.5.0和依赖性(noko等.)红宝石(2.1.1) -名称-空格(0.8.0)
代码
需要‘海葵’
要求'redis‘
需要‘redis-命名空间’
Anemone.crawl(主页)
anemone.storage = Anemone::Storage.Redis
anemone.on_every_page do \p\x{e76f}
代码的...tons
结束
config/redis.yml
默认值:&缺省主机: localhost端口: 6379
开发:<<:*默认值
测试:<<:*默认值
暂存:<<:*默认值
生产:<<:*默认值
发布于 2011-02-06 23:31:56
你的问题是
RuntimeError (-ERR wrong number of arguments for 'hgetall' command):在代码中的某个地方,您试图调用“hgetall”,但不传递键,或者传递一个太多的参数。只需检查代码,并找到调用该命令的位置,并传递正确的参数# (1)
http://redis.io/commands/hgetall
https://stackoverflow.com/questions/4916488
复制相似问题