Module: Firebolt
- Extended by:
- Cache
- Defined in:
- lib/firebolt.rb,
lib/firebolt/keys.rb,
lib/firebolt/cache.rb,
lib/firebolt/config.rb,
lib/firebolt/warmer.rb,
lib/firebolt/railtie.rb,
lib/firebolt/version.rb,
lib/firebolt/file_warmer.rb,
lib/firebolt/warm_cache_job.rb
Defined Under Namespace
Modules: Cache, Keys, Warmer
Classes: Config, FileWarmer, Railtie, WarmCacheJob
Constant Summary
collapse
- FIREBOLT_MUTEX =
Using a mutex to control access while creating a ::Firebolt::Config
::Mutex.new
- CONFIGURE_MUTEX =
::Mutex.new
- VERSION =
"0.14.0"
Class Method Summary
collapse
Methods included from Cache
delete, fetch, read, reset_salt!, salt, write
Methods included from Keys
#cache_key, #cache_key_with_salt, #namespace, #salt_key
Class Method Details
.config ⇒ Object
26
27
28
29
30
31
32
33
34
|
# File 'lib/firebolt.rb', line 26
def self.config
return @config unless @config.nil?
FIREBOLT_MUTEX.synchronize do
@config ||= ::Firebolt::Config.new
end
@config
end
|
36
37
38
39
40
|
# File 'lib/firebolt.rb', line 36
def self.configure
CONFIGURE_MUTEX.synchronize do
yield(config)
end
end
|
.initialize!(&block) ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/firebolt.rb', line 53
def self.initialize!(&block)
return if initialized?
configure(&block) if block_given?
raise "Firebolt.config.cache has not been set" unless config.cache
raise "Firebolt.config.warmer has not been set" unless config.warmer
unless skip_warming?
initialize_rufus_scheduler
warmer = config.use_file_warmer? ? ::Firebolt::FileWarmer : config.warmer
::Concurrent::Future.execute { ::Firebolt::WarmCacheJob.new.perform(warmer) }
end
initialized!
end
|
.initialize_rufus_scheduler ⇒ Object
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/firebolt.rb', line 42
def self.initialize_rufus_scheduler
return if config.warming_frequency.nil?
warming_frequency = config.warming_frequency.to_s
scheduler = ::Rufus::Scheduler.new
scheduler.every(warming_frequency) do
::Firebolt::WarmCacheJob.new.perform(config.warmer)
end
end
|
.initialized! ⇒ Object
72
73
74
75
76
77
78
79
80
|
# File 'lib/firebolt.rb', line 72
def self.initialized!
return @initialized unless @initialized.nil?
FIREBOLT_MUTEX.synchronize do
@initialized ||= true
end
@initialized
end
|
.initialized? ⇒ Boolean
82
83
84
|
# File 'lib/firebolt.rb', line 82
def self.initialized?
!! @initialized
end
|
.skip_warming? ⇒ Boolean
86
87
88
|
# File 'lib/firebolt.rb', line 86
def self.skip_warming?
ENV['FIREBOLT_SKIP_WARMING'] || ENV['RAILS_ENV'] == 'test' || config.skip_warming == true
end
|