Module: Taskinator
- Defined in:
- lib/taskinator/logger.rb,
lib/taskinator.rb,
lib/taskinator/api.rb,
lib/taskinator/task.rb,
lib/taskinator/tasks.rb,
lib/taskinator/queues.rb,
lib/taskinator/process.rb,
lib/taskinator/version.rb,
lib/taskinator/visitor.rb,
lib/taskinator/executor.rb,
lib/taskinator/workflow.rb,
lib/taskinator/definition.rb,
lib/taskinator/complete_on.rb,
lib/taskinator/persistence.rb,
lib/taskinator/task_worker.rb,
lib/taskinator/xml_visitor.rb,
lib/taskinator/queues/resque.rb,
lib/taskinator/process_worker.rb,
lib/taskinator/queues/sidekiq.rb,
lib/taskinator/instrumentation.rb,
lib/taskinator/redis_connection.rb,
lib/taskinator/definition/builder.rb,
lib/taskinator/queues/delayed_job.rb,
lib/taskinator/create_process_worker.rb
Overview
Defined Under Namespace
Modules: Api, CompleteOn, Definition, Instrumentation, Logging, Persistence, Queues, Visitor, Workflow
Classes: ConsoleInstrumenter, CreateProcessWorker, Executor, NoOpInstrumenter, Process, ProcessWorker, RedisConnection, Task, TaskWorker, Tasks
Constant Summary
collapse
- NAME =
"Taskinator"
- LICENSE =
'See LICENSE.txt for licensing details.'
- DEFAULTS =
{
}
- VERSION =
"0.3.6"
Class Attribute Summary collapse
-
.queue_adapter ⇒ Object
the queue adapter to use supported adapters include :delayed_job, :redis and :sidekiq NOTE: ensure that the respective gem is included.
-
.queue_config ⇒ Object
configuration, usually a hash, which will be passed to the configured queue adapter.
Class Method Summary
collapse
Class Attribute Details
.queue_adapter ⇒ Object
the queue adapter to use supported adapters include :delayed_job, :redis and :sidekiq NOTE: ensure that the respective gem is included
99
100
101
|
# File 'lib/taskinator.rb', line 99
def queue_adapter
@queue_adapter
end
|
.queue_config ⇒ Object
configuration, usually a hash, which will be passed to the configured queue adapter
108
109
110
|
# File 'lib/taskinator.rb', line 108
def queue_config
@queue_config
end
|
Class Method Details
Configuration for Taskinator client, use like:
Taskinator.configure do |config|
config.redis = { :namespace => 'myapp', :pool_size => 1, :url => 'redis://myhost:8877/0' }
config.queue_config = { :process_queue => 'processes', :task_queue => 'tasks' }
end
63
64
65
|
# File 'lib/taskinator.rb', line 63
def configure
yield self if block_given?
end
|
.generate_uuid ⇒ Object
51
52
53
|
# File 'lib/taskinator.rb', line 51
def generate_uuid
SecureRandom.uuid
end
|
.instrumenter ⇒ Object
set the instrumenter to use. can be ActiveSupport::Notifications
125
126
127
|
# File 'lib/taskinator.rb', line 125
def instrumenter
@instrumenter ||= NoOpInstrumenter.new
end
|
.instrumenter=(value) ⇒ Object
128
129
130
|
# File 'lib/taskinator.rb', line 128
def instrumenter=(value)
@instrumenter = value
end
|
.logger ⇒ Object
87
88
89
|
# File 'lib/taskinator.rb', line 87
def logger
Taskinator::Logging.logger
end
|
.logger=(log) ⇒ Object
91
92
93
|
# File 'lib/taskinator.rb', line 91
def logger=(log)
Taskinator::Logging.logger = log
end
|
.options ⇒ Object
44
45
46
|
# File 'lib/taskinator.rb', line 44
def options
@options ||= DEFAULTS.dup
end
|
.options=(opts) ⇒ Object
47
48
49
|
# File 'lib/taskinator.rb', line 47
def options=(opts)
@options = opts
end
|
.queue ⇒ Object
115
116
117
118
119
120
121
|
# File 'lib/taskinator.rb', line 115
def queue
@queue ||= begin
adapter = self.queue_adapter || :resque
config = queue_config || {}
Taskinator::Queues.create_adapter(adapter, config)
end
end
|
.redis(&block) ⇒ Object
67
68
69
70
|
# File 'lib/taskinator.rb', line 67
def redis(&block)
raise ArgumentError, "requires a block" unless block_given?
redis_pool.with(&block)
end
|
.redis=(hash) ⇒ Object
83
84
85
|
# File 'lib/taskinator.rb', line 83
def redis=(hash)
@redis = Taskinator::RedisConnection.create(hash)
end
|
.redis_mutex(lockid, options = {}, &block) ⇒ Object
72
73
74
75
76
77
|
# File 'lib/taskinator.rb', line 72
def redis_mutex(lockid, options={}, &block)
raise ArgumentError, "requires a block" unless block_given?
redis do |r|
Redis::Semaphore.new(lockid, {:redis => r}.merge(options)).lock(&block)
end
end
|
.redis_pool ⇒ Object
79
80
81
|
# File 'lib/taskinator.rb', line 79
def redis_pool
@redis ||= Taskinator::RedisConnection.create
end
|