Class: LS4::MDSCacheService
- Inherits:
-
Service
- Object
- EventBus::Singleton
- Service
- LS4::MDSCacheService
- Extended by:
- Forwardable
- Defined in:
- lib/ls4/service/mds_cache.rb
Instance Method Summary collapse
-
#initialize ⇒ MDSCacheService
constructor
A new instance of MDSCacheService.
- #reopen(uri) ⇒ Object
- #run ⇒ Object
- #shutdown ⇒ Object
Methods inherited from Service
Methods included from EventBus::SingletonMixin
#ebus_bind!, #ebus_connect, extended
Methods included from EventBus::BusMixin
#ebus_all_slots, #ebus_disconnect!
Methods included from EventBus::DeclarerBase::Methods
#connect, #ebus_all_slots, #ebus_call_log, #ebus_call_slots, #ebus_signal_error, #ebus_signal_log, #ebus_signal_slots
Methods included from EventBus::DeclarerBase
Constructor Details
#initialize ⇒ MDSCacheService
Returns a new instance of MDSCacheService.
64 65 66 67 |
# File 'lib/ls4/service/mds_cache.rb', line 64 def initialize @uri = "" @cache = NullMDSCache.new end |
Instance Method Details
#reopen(uri) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/ls4/service/mds_cache.rb', line 85 def reopen(uri) klass, expr = MDSCacheSelector.select_class(uri) cache = klass.new cache.open(expr) old_cache = @cache @cache = cache $log.info "using MDS cache: #{@cache}" begin old_cache.close rescue $log.error "MDSCache close error: #{$!}" $log.error_backtrace $!.backtrace end end |
#run ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/ls4/service/mds_cache.rb', line 69 def run SyncBus.register_callback(SYNC_MDS_CACHE_URI, MDSCacheConfigService.hash_uri(@uri)) do |obj| uri = obj reopen(uri) @uri = uri MDSCacheConfigService.hash_uri(@uri) end end |
#shutdown ⇒ Object
79 80 81 82 83 |
# File 'lib/ls4/service/mds_cache.rb', line 79 def shutdown if @cache @cache.close rescue nil end end |