sql >> Databasteknik >  >> NoSQL >> Redis

Enkel användning av EM::Synchrony#sync orsakar "rotfiber" FiberError -- mitt fel?

Jag tror att din kod kan fungera om du hittar den korrekta versionen av em-hiredis som den försöker patcha, det är ett problem med lösa beroenden.

Här är en fullt fungerande kod men baserad på huvudgrenen av em-synkrony:

Gemfil:

source :rubygems

gem 'em-synchrony', :git => "git://github.com/igrigorik/em-synchrony.git"
gem 'em-hiredis', '~> 0.1.0'

test.rb:

require 'rubygems'
require 'bundler/setup'

require 'em-synchrony'
require 'em-synchrony/em-hiredis'

EventMachine.synchrony do
  redis = EM::Hiredis.connect

  redis.set('foo', 'bar')
  puts redis.get('foo')

  EM.stop
end

och kör den sedan med:

$ bundle
$ ruby test.rb

Monkey patching är ett naturligt felaktigt sätt att lappa ädelstenar såvida du inte säkerställer att den exakta versionen av ädelstenen du lappade används, vilket är något em-synchrony borde genomdriva eller åtminstone upptäcka.




  1. Hur infogar jag HTML i Mongodb?

  2. Redis köarbetare kraschar i utcparse

  3. MongoDB-aggregation med Java-drivrutin

  4. Cascade style delete i Mongoose