livetask 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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