livetask 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Livetask
2
2
 
3
- TODO: Write a gem description
3
+ Live broadcast from your background jobs.
4
+ Easy to use and efficient to build progress monitoring of background tasks on your web pages.
4
5
 
5
6
  ## Installation
6
7
 
@@ -18,7 +19,60 @@ Or install it yourself as:
18
19
 
19
20
  ## Usage
20
21
 
21
- TODO: Write usage instructions here
22
+ ### Sidekiq
23
+ #### Worker
24
+ Include Livetask::Sidekiq::Worker inside of your sidekiq worker class
25
+ ```ruby
26
+ include Livetask::Sidekiq::Web
27
+ ```
28
+ ##### Task name
29
+ ```ruby
30
+ set_task_name('Eduard')
31
+ ```
32
+ ##### Logging
33
+ ```ruby
34
+ add_to_log('I were logged and successfully stored in redis!')
35
+ ```
36
+ ##### Status
37
+ ```ruby
38
+ set_status('in progress')
39
+ ```
40
+ ##### Progress
41
+ ```ruby
42
+ set_progress(100) #Completed!
43
+ ```
44
+
45
+ #### Web
46
+ Include Livetask::Sidekiq::Web inside of your controller
47
+ ```ruby
48
+ include Livetask::Sidekiq::Web
49
+ ```
50
+ ##### List of all recorded tasks ids
51
+ ```ruby
52
+ get_tasks_ids
53
+ ```
54
+ ##### Task name
55
+ ```ruby
56
+ get_task_name(task_id)
57
+ ```
58
+ ##### Logging
59
+ To get a full log use:
60
+ ```ruby
61
+ get_log(task_id)
62
+ ```
63
+ If you want to limit returned log, you can set 'from' and 'to' limits
64
+ ```ruby
65
+ get_log(task_id, 3) # Will return last 3 lines of log
66
+ get_log(task_id, 12, 2) # Will return last 10 lines of log except the latest 2
67
+ ```
68
+ ##### Status
69
+ ```ruby
70
+ get_status(task_id)
71
+ ```
72
+ ##### Progress
73
+ ```ruby
74
+ get_progress(task_id)
75
+ ```
22
76
 
23
77
  ## Contributing
24
78
 
data/lib/livetask.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  require "livetask/version"
2
- require "livetask/sidekiq_web"
3
- require "livetask/sidekiq_worker"
2
+ require "livetask/sidekiq/web"
3
+ require "livetask/sidekiq/worker"
4
4
 
5
5
  module Livetask
6
- # Your code goes here...
7
6
  end
@@ -0,0 +1,53 @@
1
+ module Livetask
2
+ module Sidekiq
3
+ module Web
4
+
5
+ def self.show_tasks
6
+ "<div id='livetask'>Loading tasks...</div>"
7
+ end
8
+
9
+ def get_tasks_ids
10
+ Sidekiq.redis do |conn|
11
+ conn.zrevrange("livetask-tasks", 0, (2**(0.size * 8 -2) -1))
12
+ end
13
+ end
14
+
15
+ def get_task_name(jid)
16
+ Sidekiq.redis do |conn|
17
+ conn.hget("livetask-#{jid}-info", "name")
18
+ end
19
+ end
20
+
21
+ def get_progress(jid)
22
+ Sidekiq.redis do |conn|
23
+ conn.hget("livetask-#{jid}-info", "progress")
24
+ end
25
+ end
26
+
27
+ def get_status(jid)
28
+ Sidekiq.redis do |conn|
29
+ conn.hget("livetask-#{jid}-info", "status")
30
+ end
31
+ end
32
+
33
+ def get_log(jid, to = (2**(0.size * 8 -2) -1), from = 0)
34
+ log_array = []
35
+ Sidekiq.redis do |conn|
36
+ log_array = conn.zrevrange("livetask-#{jid}-log", from, to, :with_scores => true)
37
+ end
38
+ log = ""
39
+ log_array.each do |line|
40
+ log += "#{Time.at(line.last)} #{line.first[5..-1]}\n"
41
+ end
42
+ log
43
+ end
44
+
45
+ def get_last_changed_at(jid)
46
+ Sidekiq.redis do |conn|
47
+ Time.at(conn.zscore("livetask-tasks", jid)).to_datetime
48
+ end
49
+ end
50
+
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,46 @@
1
+ module Livetask
2
+ module Sidekiq
3
+ module Worker
4
+
5
+ def set_task_name(name)
6
+ return false unless @jid
7
+ register_task(@jid)
8
+ Sidekiq.redis do |conn|
9
+ conn.hset("livetask-#{@jid}-info", "name", name)
10
+ end
11
+ end
12
+
13
+ def set_progress(progress)
14
+ return false unless @jid
15
+ register_task(@jid)
16
+ Sidekiq.redis do |conn|
17
+ conn.hset("livetask-#{@jid}-info", "progress", progress)
18
+ end
19
+ end
20
+
21
+ def set_status(status)
22
+ return false unless @jid
23
+ register_task(@jid)
24
+ Sidekiq.redis do |conn|
25
+ conn.hset("livetask-#{@jid}-info", "status", status)
26
+ end
27
+ end
28
+
29
+ def add_to_log(string)
30
+ return false unless @jid
31
+ register_task(@jid)
32
+ Sidekiq.redis do |conn|
33
+ conn.zadd("livetask-#{@jid}-log", Time.now.to_i, "#{Time.now.to_i.to_s[-5..-1]}#{string}")
34
+ end
35
+ end
36
+
37
+ private
38
+ def register_task(jid)
39
+ Sidekiq.redis do |conn|
40
+ conn.zadd("livetask-tasks", Time.now.to_i, jid.to_s)
41
+ end
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -1,3 +1,3 @@
1
1
  module Livetask
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/livetask.gemspec CHANGED
@@ -4,7 +4,7 @@ require File.expand_path('../lib/livetask/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Alexey Krasnoperov"]
6
6
  gem.email = ["Alexey.Krasnoperov@gmail.com"]
7
- gem.description = %q{Live broadcast from a background job}
7
+ gem.description = %q{Live broadcast from a background jobs}
8
8
  gem.summary = %q{Gem that displays real-time progress of background job on your page}
9
9
  gem.homepage = ""
10
10
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livetask
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,9 +9,9 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-02 00:00:00.000000000 Z
12
+ date: 2013-02-05 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Live broadcast from a background job
14
+ description: Live broadcast from a background jobs
15
15
  email:
16
16
  - Alexey.Krasnoperov@gmail.com
17
17
  executables: []
@@ -24,8 +24,8 @@ files:
24
24
  - README.md
25
25
  - Rakefile
26
26
  - lib/livetask.rb
27
- - lib/livetask/sidekiq_web.rb
28
- - lib/livetask/sidekiq_worker.rb
27
+ - lib/livetask/sidekiq/web.rb
28
+ - lib/livetask/sidekiq/worker.rb
29
29
  - lib/livetask/version.rb
30
30
  - livetask.gemspec
31
31
  homepage: ''
@@ -1,51 +0,0 @@
1
- module Livetask
2
- module SidekiqWeb
3
-
4
- def self.show_tasks
5
- "<div id='livetask'>Loading tasks...</div>"
6
- end
7
-
8
- def get_tasks_ids
9
- Sidekiq.redis do |conn|
10
- conn.zrevrange("livetask-tasks", 0, (2**(0.size * 8 -2) -1))
11
- end
12
- end
13
-
14
- def get_task_name(jid)
15
- Sidekiq.redis do |conn|
16
- conn.hget("livetask-#{jid}-info", "name")
17
- end
18
- end
19
-
20
- def get_progress(jid)
21
- Sidekiq.redis do |conn|
22
- conn.hget("livetask-#{jid}-info", "progress")
23
- end
24
- end
25
-
26
- def get_status(jid)
27
- Sidekiq.redis do |conn|
28
- conn.hget("livetask-#{jid}-info", "status")
29
- end
30
- end
31
-
32
- def get_log(jid)
33
- log_array = []
34
- Sidekiq.redis do |conn|
35
- log_array = conn.zrevrangebyscore("livetask-#{jid}-log", '+inf', 0, :with_scores => true)
36
- end
37
- log = ""
38
- log_array.each do |line|
39
- log += "#{Time.at(line.last)} #{line.first[5..-1]}\n"
40
- end
41
- log
42
- end
43
-
44
- def get_last_changed_at(jid)
45
- Sidekiq.redis do |conn|
46
- Time.at(conn.zscore("livetask-tasks", jid)).to_datetime
47
- end
48
- end
49
-
50
- end
51
- end
@@ -1,44 +0,0 @@
1
- module Livetask
2
- module SidekiqWorker
3
-
4
- def set_task_name(name)
5
- return false unless @jid
6
- register_task(@jid)
7
- Sidekiq.redis do |conn|
8
- conn.hset("livetask-#{@jid}-info", "name", name)
9
- end
10
- end
11
-
12
- def set_progress(progress)
13
- return false unless @jid
14
- register_task(@jid)
15
- Sidekiq.redis do |conn|
16
- conn.hset("livetask-#{@jid}-info", "progress", progress)
17
- end
18
- end
19
-
20
- def set_status(status)
21
- return false unless @jid
22
- register_task(@jid)
23
- Sidekiq.redis do |conn|
24
- conn.hset("livetask-#{@jid}-info", "status", status)
25
- end
26
- end
27
-
28
- def add_to_log(string)
29
- return false unless @jid
30
- register_task(@jid)
31
- Sidekiq.redis do |conn|
32
- conn.zadd("livetask-#{@jid}-log", Time.now.to_i, "#{Time.now.to_i.to_s[-5..-1]}#{string}")
33
- end
34
- end
35
-
36
- private
37
- def register_task(jid)
38
- Sidekiq.redis do |conn|
39
- conn.zadd("livetask-tasks", Time.now.to_i, jid.to_s)
40
- end
41
- end
42
-
43
- end
44
- end