Ruby on Rails: проблемы с анемонами и Redis - PullRequest
0 голосов
/ 07 февраля 2011

Я создаю своего рода веб-сканер, и когда я использую Anemone без хранилища для сканирования сайта, он в конечном итоге падает из-за проблем с памятью.

Итак, я установил Redis, redis-rb и т. Д. И изменил свой код для использования хранилища redis. Теперь я получаю сообщение об ошибке от rails, и оно не завершает сканирование. Он подключается к Redis, так как я вижу активность, когда наблюдаю за ним, но останавливает сканирование.

Я сделал тест Redis, и он отлично работает ...

Есть идеи ???

Ошибка

RuntimeError (-ERR неверное количество аргументов для команды 'hgetall'): /usr/lib/ruby/gems/1.8/gems/ezmobius-redis-rb-0.1/lib/redis.rb:274:in read_reply» /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:in карта' /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» anemone (0.5.0) lib / anemone / storage / redis.rb: 82: в rget 'anemone (0.5.0) lib / anemone / storage / redis.rb: 41: анемон Inach (0.5.0) lib / anemone / storage / redis.rb: 40: в каждом анемоне (0.5.0) lib / anemone / storage / redis.rb: 57: анемона анкисиса (0.5.0) lib / anemone / storage / redis.rb: 12: инициализация анемона (0.5.0) lib / anemone / storage.rb: 30: innew 'anemone (0.5.0) lib / anemone / storage.rb: 30: в Redis ' приложение / контроллеры / processpages_controller.rb: 332: incrawlnewsite '

Результаты монитора Redis:

+ 1297028372.281985 "ключи" "анемона: страницы: *"

версия / окружающая среда:

redis: пробовал версию 2, а 2.0.4 - тоже самое проблема либо версия рельсы. 2.3.8, рубин 1.8.7 патч 174 ОС: Centos 5 redis - порт по умолчанию 6379 hostgator vps / панель управления x

установленные драгоценные камни

анемон 0.5.0 и зависимости (noko и т.д ..) Redis Gem (2.1.1) redis-name-space (0.8.0)

код

требуется 'анемон'

требуется 'redis'

требуется 'redis-namespace'

Anemone.crawl (домашняя страница) do | anemone |

anemone.storage = Anemone :: Storage.Redis

anemone.on_every_page do | page |

... тонн кода

конец

конфиг / redis.yml

по умолчанию: & по умолчанию хост: локальный порт: 6379

развитие: <<: * по умолчанию </p>

тест: <<: * по умолчанию </p>

постановка: <<: * по умолчанию </p>

Производство: <<: * по умолчанию </p>

1 Ответ

0 голосов
/ 07 февраля 2011

Ваша проблема

RuntimeError (-ERR wrong number of arguments for 'hgetall' command):

Где-то в вашем коде вы пытаетесь вызвать 'hgetall', но не передаёте ключ, или вы передаете слишком много параметров.Просто проверьте свой код, найдите, где вы вызываете эту команду, и передайте правильное количество параметров (1)

http://redis.io/commands/hgetall

...