Module: BusinessFlow::ClusterLock
- Defined in:
- lib/business_flow/cluster_lock.rb
Overview
Mixin for business flow to acquire and retain a cluster lock.
Defined Under Namespace
Modules: ClassMethods
Classes: LockFailure, LockInfo
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.default_servers ⇒ Object
61
62
63
|
# File 'lib/business_flow/cluster_lock.rb', line 61
def self.default_servers
@default_servers ||= proc {}
end
|
.default_servers=(servers) ⇒ Object
51
52
53
54
55
56
57
58
59
|
# File 'lib/business_flow/cluster_lock.rb', line 51
def self.default_servers=(servers)
@default_servers = if servers.is_a?(String)
proc { servers }
elsif servers
Callable.new(servers)
else
nil
end
end
|
.disable! ⇒ Object
39
40
41
|
# File 'lib/business_flow/cluster_lock.rb', line 39
def self.disable!
@disabled = true
end
|
.disabled? ⇒ Boolean
47
48
49
|
# File 'lib/business_flow/cluster_lock.rb', line 47
def self.disabled?
!!@disabled
end
|
.enable! ⇒ Object
43
44
45
|
# File 'lib/business_flow/cluster_lock.rb', line 43
def self.enable!
@disabled = false
end
|
.included(klass) ⇒ Object
35
36
37
|
# File 'lib/business_flow/cluster_lock.rb', line 35
def self.included(klass)
klass.extend(ClassMethods)
end
|
Instance Method Details
#assert_cluster_lock! ⇒ Object
65
66
67
68
69
70
71
|
# File 'lib/business_flow/cluster_lock.rb', line 65
def assert_cluster_lock!
@_business_flow_cluster_lock.assert! unless BusinessFlow::ClusterLock.disabled?
rescue ZK::Exceptions::ZKError => e
BusinessFlow.add_error(errors, :cluster_lock, :assert_failed, e.message)
raise
end
|
#read_attribute_for_validation(key) ⇒ Object
73
74
75
76
77
78
79
|
# File 'lib/business_flow/cluster_lock.rb', line 73
def read_attribute_for_validation(key)
if key == :cluster_lock
ClassMethods.lock_name(self)
else
super
end
end
|