Class: Qless::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/qless.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Client

Returns a new instance of Client.



153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# File 'lib/qless.rb', line 153

def initialize(options = {})
  # This is the redis instance we're connected to
  @redis   = options[:redis] || Redis.connect(options) # use connect so REDIS_URL will be honored
  @options = options
  assert_minimum_redis_version("2.5.5")
  @config = Config.new(self)
  ['cancel', 'config', 'complete', 'depends', 'fail', 'failed', 'get', 'heartbeat', 'jobs', 'peek', 'pop',
    'priority', 'put', 'queues', 'recur', 'retry', 'stats', 'tag', 'track', 'workers', 'pause', 'unpause',
    'deregister_workers'].each do |f|
    self.instance_variable_set("@_#{f}", Qless::LuaScript.new(f, @redis))
  end

  @jobs    = ClientJobs.new(self)
  @queues  = ClientQueues.new(self)
  @workers = ClientWorkers.new(self)
end

Instance Attribute Details

#_cancelObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _cancel
  @_cancel
end

#_completeObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _complete
  @_complete
end

#_configObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _config
  @_config
end

#_dependsObject (readonly)

Returns the value of attribute _depends.



148
149
150
# File 'lib/qless.rb', line 148

def _depends
  @_depends
end

#_deregister_workersObject (readonly)

Returns the value of attribute _deregister_workers.



149
150
151
# File 'lib/qless.rb', line 149

def _deregister_workers
  @_deregister_workers
end

#_failObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _fail
  @_fail
end

#_failedObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _failed
  @_failed
end

#_getObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _get
  @_get
end

#_heartbeatObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _heartbeat
  @_heartbeat
end

#_jobsObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _jobs
  @_jobs
end

#_pauseObject (readonly)

Returns the value of attribute _pause.



149
150
151
# File 'lib/qless.rb', line 149

def _pause
  @_pause
end

#_peekObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _peek
  @_peek
end

#_popObject (readonly)

Lua scripts



147
148
149
# File 'lib/qless.rb', line 147

def _pop
  @_pop
end

#_priorityObject (readonly)

Returns the value of attribute _priority.



148
149
150
# File 'lib/qless.rb', line 148

def _priority
  @_priority
end

#_putObject (readonly)

Returns the value of attribute _put.



148
149
150
# File 'lib/qless.rb', line 148

def _put
  @_put
end

#_queuesObject (readonly)

Returns the value of attribute _queues.



148
149
150
# File 'lib/qless.rb', line 148

def _queues
  @_queues
end

#_recurObject (readonly)

Returns the value of attribute _recur.



148
149
150
# File 'lib/qless.rb', line 148

def _recur
  @_recur
end

#_retryObject (readonly)

Returns the value of attribute _retry.



148
149
150
# File 'lib/qless.rb', line 148

def _retry
  @_retry
end

#_statsObject (readonly)

Returns the value of attribute _stats.



148
149
150
# File 'lib/qless.rb', line 148

def _stats
  @_stats
end

#_tagObject (readonly)

Returns the value of attribute _tag.



148
149
150
# File 'lib/qless.rb', line 148

def _tag
  @_tag
end

#_trackObject (readonly)

Returns the value of attribute _track.



148
149
150
# File 'lib/qless.rb', line 148

def _track
  @_track
end

#_unpauseObject (readonly)

Returns the value of attribute _unpause.



149
150
151
# File 'lib/qless.rb', line 149

def _unpause
  @_unpause
end

#_workersObject (readonly)

Returns the value of attribute _workers.



148
149
150
# File 'lib/qless.rb', line 148

def _workers
  @_workers
end

#configObject (readonly)

A real object



151
152
153
# File 'lib/qless.rb', line 151

def config
  @config
end

#jobsObject (readonly)

A real object



151
152
153
# File 'lib/qless.rb', line 151

def jobs
  @jobs
end

#queuesObject (readonly)

A real object



151
152
153
# File 'lib/qless.rb', line 151

def queues
  @queues
end

#redisObject (readonly)

A real object



151
152
153
# File 'lib/qless.rb', line 151

def redis
  @redis
end

#workersObject (readonly)

A real object



151
152
153
# File 'lib/qless.rb', line 151

def workers
  @workers
end

Instance Method Details

#bulk_cancel(jids) ⇒ Object



197
198
199
# File 'lib/qless.rb', line 197

def bulk_cancel(jids)
  @_cancel.call([], jids)
end

#deregister_workers(*worker_names) ⇒ Object



193
194
195
# File 'lib/qless.rb', line 193

def deregister_workers(*worker_names)
  _deregister_workers.call([], worker_names)
end

#eventsObject



174
175
176
177
178
179
# File 'lib/qless.rb', line 174

def events
  # Events needs its own redis instance of the same configuration, because
  # once it's subscribed, we can only use pub-sub-like commands. This way,
  # we still have access to the client in the normal case
  @events ||= ClientEvents.new(Redis.connect(@options))
end

#inspectObject



170
171
172
# File 'lib/qless.rb', line 170

def inspect
  "<Qless::Client #{@options} >"
end

#new_redis_connectionObject



201
202
203
# File 'lib/qless.rb', line 201

def new_redis_connection
  ::Redis.new(url: redis.id)
end

#tags(offset = 0, count = 100) ⇒ Object



189
190
191
# File 'lib/qless.rb', line 189

def tags(offset=0, count=100)
  JSON.parse(@_tag.call([], ['top', offset, count]))
end

#track(jid) ⇒ Object



181
182
183
# File 'lib/qless.rb', line 181

def track(jid)
  @_track.call([], ['track', jid, Time.now.to_i])
end

#untrack(jid) ⇒ Object



185
186
187
# File 'lib/qless.rb', line 185

def untrack(jid)
  @_track.call([], ['untrack', jid, Time.now.to_i])
end