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/queues/resque.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, RedisConnection, Task, TaskWorker, Tasks
Constant Summary
collapse
- NAME =
"Taskinator"
- LICENSE =
'See LICENSE.txt for licensing details.'
- DEFAULTS =
{
}
- VERSION =
"0.3.2"
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
93
94
95
|
# File 'lib/taskinator.rb', line 93
def queue_adapter
@queue_adapter
end
|
.queue_config ⇒ Object
configuration, usually a hash, which will be passed to the configured queue adapter
102
103
104
|
# File 'lib/taskinator.rb', line 102
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
57
58
59
|
# File 'lib/taskinator.rb', line 57
def configure
yield self if block_given?
end
|
.instrumenter ⇒ Object
set the instrumenter to use. can be ActiveSupport::Notifications
119
120
121
|
# File 'lib/taskinator.rb', line 119
def instrumenter
@instrumenter ||= NoOpInstrumenter.new
end
|
.instrumenter=(value) ⇒ Object
122
123
124
|
# File 'lib/taskinator.rb', line 122
def instrumenter=(value)
@instrumenter = value
end
|
.options ⇒ Object
42
43
44
|
# File 'lib/taskinator.rb', line 42
def options
@options ||= DEFAULTS.dup
end
|
.options=(opts) ⇒ Object
45
46
47
|
# File 'lib/taskinator.rb', line 45
def options=(opts)
@options = opts
end
|
.queue ⇒ Object
109
110
111
112
113
114
115
|
# File 'lib/taskinator.rb', line 109
def queue
@queue ||= begin
adapter = self.queue_adapter || :resque
config = queue_config || {}
Taskinator::Queues.create_adapter(adapter, config)
end
end
|
.redis(&block) ⇒ Object
61
62
63
64
|
# File 'lib/taskinator.rb', line 61
def redis(&block)
raise ArgumentError, "requires a block" unless block_given?
redis_pool.with(&block)
end
|
.redis_mutex(lockid, options = {}, &block) ⇒ Object
66
67
68
69
70
71
|
# File 'lib/taskinator.rb', line 66
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
|