В одном из моих инициализаторов мне нужно получить несколько хэшей из экземпляра redis.
Однако из-за количества хэшей и слабых мест соединения загрузка может занять довольно много времени.
Поскольку он находится в инициализаторе, приложение недоступно до тех пор, пока не будут загружены все хэши.
Поэтому я подумал, что мог бы выполнить инициализацию в потоке, чтобы приложение могло запускаться, и тогда хэши загружались бы вовремя, поскольку они не являются необходимыми для приложения.
Я пробовал что-то вроде этого:
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
STORE = {}
Thread.abort_on_exception = true
Thread.new do
REDIS.keys.each do |key|
STORE[key] = REDIS[key]
end
end
Но это не работает и нет сообщений об ошибках: (
Есть идеи?
Alex