creeper 1.0.9 → 2.0.0

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.
Files changed (145) hide show
  1. data/.gitignore +1 -0
  2. data/.rvmrc +48 -0
  3. data/Gemfile +17 -1
  4. data/Guardfile +32 -0
  5. data/Rakefile +9 -1
  6. data/bin/creeper +10 -58
  7. data/bin/creeperctl +74 -0
  8. data/config.ru +18 -0
  9. data/creeper.gemspec +19 -9
  10. data/lib/creeper.rb +108 -413
  11. data/lib/creeper/beanstalk_connection.rb +35 -0
  12. data/lib/creeper/cli.rb +225 -0
  13. data/lib/creeper/client.rb +93 -0
  14. data/lib/creeper/core_ext.rb +54 -0
  15. data/lib/creeper/exception_handler.rb +30 -0
  16. data/lib/creeper/extensions/action_mailer.rb +33 -0
  17. data/lib/creeper/extensions/active_record.rb +30 -0
  18. data/lib/creeper/extensions/generic_proxy.rb +26 -0
  19. data/lib/creeper/fetch.rb +94 -0
  20. data/lib/creeper/legacy.rb +46 -0
  21. data/lib/creeper/logging.rb +46 -0
  22. data/lib/creeper/manager.rb +164 -0
  23. data/lib/creeper/middleware/chain.rb +100 -0
  24. data/lib/creeper/middleware/server/active_record.rb +13 -0
  25. data/lib/creeper/middleware/server/logging.rb +31 -0
  26. data/lib/creeper/middleware/server/retry_jobs.rb +79 -0
  27. data/lib/creeper/middleware/server/timeout.rb +21 -0
  28. data/lib/creeper/paginator.rb +31 -0
  29. data/lib/creeper/processor.rb +116 -0
  30. data/lib/creeper/rails.rb +21 -0
  31. data/lib/creeper/redis_connection.rb +28 -0
  32. data/lib/creeper/testing.rb +44 -0
  33. data/lib/creeper/util.rb +45 -0
  34. data/lib/creeper/version.rb +1 -1
  35. data/lib/creeper/web.rb +248 -0
  36. data/lib/creeper/worker.rb +62 -313
  37. data/spec/dummy/.gitignore +15 -0
  38. data/spec/dummy/Gemfile +51 -0
  39. data/spec/dummy/README.rdoc +261 -0
  40. data/spec/dummy/Rakefile +7 -0
  41. data/spec/dummy/app/assets/images/rails.png +0 -0
  42. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  43. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  44. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  45. data/spec/dummy/app/controllers/work_controller.rb +71 -0
  46. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  47. data/spec/dummy/app/mailers/.gitkeep +0 -0
  48. data/spec/dummy/app/mailers/user_mailer.rb +9 -0
  49. data/spec/dummy/app/models/.gitkeep +0 -0
  50. data/spec/dummy/app/models/post.rb +8 -0
  51. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  52. data/spec/dummy/app/views/user_mailer/greetings.html.erb +3 -0
  53. data/spec/dummy/app/views/work/index.html.erb +1 -0
  54. data/spec/dummy/app/workers/fast_worker.rb +10 -0
  55. data/spec/dummy/app/workers/hard_worker.rb +11 -0
  56. data/spec/dummy/app/workers/lazy_worker.rb +12 -0
  57. data/spec/dummy/app/workers/suicidal_worker.rb +33 -0
  58. data/spec/dummy/config.ru +4 -0
  59. data/spec/dummy/config/application.rb +68 -0
  60. data/spec/dummy/config/boot.rb +6 -0
  61. data/spec/dummy/config/creeper.yml +9 -0
  62. data/spec/dummy/config/database.yml +25 -0
  63. data/spec/dummy/config/environment.rb +5 -0
  64. data/spec/dummy/config/environments/development.rb +37 -0
  65. data/spec/dummy/config/environments/production.rb +67 -0
  66. data/spec/dummy/config/environments/test.rb +37 -0
  67. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  68. data/spec/dummy/config/initializers/creeper.rb +8 -0
  69. data/spec/dummy/config/initializers/inflections.rb +15 -0
  70. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  71. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  72. data/spec/dummy/config/initializers/session_store.rb +8 -0
  73. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  74. data/spec/dummy/config/locales/en.yml +5 -0
  75. data/spec/dummy/config/routes.rb +13 -0
  76. data/spec/dummy/db/migrate/20120123214055_create_posts.rb +10 -0
  77. data/spec/dummy/db/schema.rb +23 -0
  78. data/spec/dummy/db/seeds.rb +7 -0
  79. data/spec/dummy/lib/assets/.gitkeep +0 -0
  80. data/spec/dummy/lib/tasks/.gitkeep +0 -0
  81. data/spec/dummy/log/.gitkeep +0 -0
  82. data/spec/dummy/public/404.html +26 -0
  83. data/spec/dummy/public/422.html +26 -0
  84. data/spec/dummy/public/500.html +25 -0
  85. data/spec/dummy/public/favicon.ico +0 -0
  86. data/spec/dummy/public/index.html +241 -0
  87. data/spec/dummy/public/robots.txt +5 -0
  88. data/spec/dummy/script/rails +6 -0
  89. data/spec/dummy/vendor/assets/javascripts/.gitkeep +0 -0
  90. data/spec/dummy/vendor/assets/stylesheets/.gitkeep +0 -0
  91. data/spec/dummy/vendor/plugins/.gitkeep +0 -0
  92. data/spec/lib/creeper/cli_spec.rb +208 -0
  93. data/spec/lib/creeper/client_spec.rb +110 -0
  94. data/spec/lib/creeper/exception_handler_spec.rb +110 -0
  95. data/spec/lib/creeper/processor_spec.rb +92 -0
  96. data/spec/lib/creeper/testing_spec.rb +105 -0
  97. data/spec/lib/creeper_spec.rb +54 -120
  98. data/spec/spec_helper.rb +81 -7
  99. data/spec/support/config.yml +9 -0
  100. data/spec/support/fake_env.rb +0 -0
  101. data/spec/support/workers/base_worker.rb +11 -0
  102. data/spec/support/workers/my_worker.rb +4 -0
  103. data/spec/support/workers/queued_worker.rb +5 -0
  104. data/spec/support/workers/real_worker.rb +10 -0
  105. data/web/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
  106. data/web/assets/images/bootstrap/glyphicons-halflings.png +0 -0
  107. data/web/assets/javascripts/application.js +49 -0
  108. data/web/assets/javascripts/vendor/bootstrap.js +12 -0
  109. data/web/assets/javascripts/vendor/bootstrap/bootstrap-alert.js +91 -0
  110. data/web/assets/javascripts/vendor/bootstrap/bootstrap-button.js +98 -0
  111. data/web/assets/javascripts/vendor/bootstrap/bootstrap-carousel.js +154 -0
  112. data/web/assets/javascripts/vendor/bootstrap/bootstrap-collapse.js +136 -0
  113. data/web/assets/javascripts/vendor/bootstrap/bootstrap-dropdown.js +92 -0
  114. data/web/assets/javascripts/vendor/bootstrap/bootstrap-modal.js +210 -0
  115. data/web/assets/javascripts/vendor/bootstrap/bootstrap-popover.js +95 -0
  116. data/web/assets/javascripts/vendor/bootstrap/bootstrap-scrollspy.js +125 -0
  117. data/web/assets/javascripts/vendor/bootstrap/bootstrap-tab.js +130 -0
  118. data/web/assets/javascripts/vendor/bootstrap/bootstrap-tooltip.js +270 -0
  119. data/web/assets/javascripts/vendor/bootstrap/bootstrap-transition.js +51 -0
  120. data/web/assets/javascripts/vendor/bootstrap/bootstrap-typeahead.js +271 -0
  121. data/web/assets/javascripts/vendor/jquery.js +9266 -0
  122. data/web/assets/javascripts/vendor/jquery.timeago.js +148 -0
  123. data/web/assets/stylesheets/application.css +6 -0
  124. data/web/assets/stylesheets/layout.css +26 -0
  125. data/web/assets/stylesheets/vendor/bootstrap-responsive.css +567 -0
  126. data/web/assets/stylesheets/vendor/bootstrap.css +3365 -0
  127. data/web/views/_paging.slim +15 -0
  128. data/web/views/_summary.slim +9 -0
  129. data/web/views/_workers.slim +14 -0
  130. data/web/views/index.slim +10 -0
  131. data/web/views/layout.slim +37 -0
  132. data/web/views/poll.slim +3 -0
  133. data/web/views/queue.slim +15 -0
  134. data/web/views/queues.slim +19 -0
  135. data/web/views/retries.slim +31 -0
  136. data/web/views/retry.slim +52 -0
  137. data/web/views/scheduled.slim +27 -0
  138. metadata +341 -23
  139. data/lib/creeper/celluloid_ext.rb +0 -42
  140. data/lib/creeper/creep.rb +0 -25
  141. data/lib/creeper/err_logger.rb +0 -37
  142. data/lib/creeper/launcher.rb +0 -44
  143. data/lib/creeper/out_logger.rb +0 -39
  144. data/spec/lib/creeper/session_spec.rb +0 -15
  145. data/spec/lib/creeper/worker_spec.rb +0 -21
@@ -0,0 +1,15 @@
1
+ - if @total_size > @count
2
+ .pagination.pagination-right
3
+ ul
4
+ li class="#{'disabled' if @current_page == 1}"
5
+ a href="#{url}?page=1" «
6
+ - if @current_page > 1
7
+ li
8
+ a href="#{url}?page=#{@current_page - 1}" #{@current_page - 1}
9
+ li.disabled
10
+ a href="#{url}?page=#{@current_page}" #{@current_page}
11
+ - if @total_size > @current_page * @count
12
+ li
13
+ a href="#{url}?page=#{@current_page + 1}" #{@current_page + 1}
14
+ li class="#{'disabled' if @total_size <= @current_page * @count}"
15
+ a href="#{url}?page=#{(@total_size / @count).ceil + 1}" »
@@ -0,0 +1,9 @@
1
+ .hero-unit
2
+ h1 Creeper is #{current_status}
3
+ p Processed: #{processed}
4
+ p Failed: #{failed}
5
+ p Buried: #{buried}
6
+ p Busy Workers: #{workers.size}
7
+ p Scheduled: #{scheduled}
8
+ p Retries Pending: #{zcard('retry')}
9
+ p Queue Backlog: #{backlog}
@@ -0,0 +1,14 @@
1
+ table class="table table-striped table-bordered workers"
2
+ tr
3
+ th Worker
4
+ th Queue
5
+ th Class
6
+ th Arguments
7
+ th Started
8
+ - workers.each do |(worker, msg)|
9
+ tr
10
+ td= worker
11
+ td= msg['queue']
12
+ td= msg['payload']['class']
13
+ td= msg['payload']['args'].inspect[0..100]
14
+ td== relative_time(Time.parse(msg['run_at']))
@@ -0,0 +1,10 @@
1
+ == slim :_summary
2
+
3
+ .poll
4
+ a*{name: 'poll'} href='#{{root_path}}poll' Live Poll
5
+ span class="poll-status"
6
+
7
+ == slim :_workers
8
+
9
+ form action="#{root_path}reset" method="post"
10
+ button.btn type="submit" title="If you kill -9 Creeper, this table can fill up with old data." Clear worker list
@@ -0,0 +1,37 @@
1
+ doctype html
2
+ html
3
+ head
4
+ link href='#{{root_path}}assets/application.css' media='screen' rel='stylesheet' type='text/css'
5
+ title Creeper
6
+ body
7
+ .navbar.navbar-fixed-top
8
+ .navbar-inner
9
+ .container
10
+ a.btn.btn-navbar data-toggle="collapse" data-target=".nav-collapse"
11
+ span.icon-bar
12
+ span.icon-bar
13
+ span.icon-bar
14
+ a.brand href='#{{root_path}}'
15
+ | Creeper
16
+ div.nav-collapse
17
+ ul.nav
18
+ li
19
+ a href='#{{root_path}}' Home
20
+ li
21
+ a href='#{{root_path}}queues' Queues
22
+ li
23
+ a href='#{{root_path}}retries' Retries
24
+ li
25
+ a href='#{{root_path}}scheduled' Scheduled
26
+ ul.nav.pull-right
27
+ li
28
+ a Beanstalk: #{beanstalk_location}
29
+ li
30
+ a Redis: #{location}
31
+ li
32
+ a #{Time.now.utc}
33
+
34
+ .container
35
+ == yield
36
+
37
+ script type="text/javascript" src="#{{root_path}}assets/application.js"
@@ -0,0 +1,3 @@
1
+ div
2
+ == slim :_summary
3
+ == slim :_workers
@@ -0,0 +1,15 @@
1
+ header
2
+ h1 Current messages in #{@name}
3
+
4
+ == slim :_paging, :locals => { :url => "#{root_path}queues/#{@name}" }
5
+
6
+ table class="table table-striped table-bordered"
7
+ tr
8
+ th Class
9
+ th Arguments
10
+ - @messages.each do |msg|
11
+ tr
12
+ td= msg['class']
13
+ td= msg['args'].inspect[0..100]
14
+
15
+ == slim :_paging, :locals => { :url => "#{root_path}queues/#{@name}" }
@@ -0,0 +1,19 @@
1
+ h1 Queues
2
+
3
+ - if @queues.size > 0
4
+ table class="table table-striped table-bordered"
5
+ tr
6
+ th Queue
7
+ th Size
8
+ th
9
+ - queues.each do |(queue, size)|
10
+ tr
11
+ td
12
+ a href="#{root_path}queues/#{queue}" #{queue}
13
+ td= size
14
+ td
15
+ form action="#{root_path}queues/#{queue}" method="post"
16
+ input.btn.btn-danger type="submit" name="delete" value="Delete"
17
+ - else
18
+ p No queues found.
19
+ a href="#{root_path}" Back
@@ -0,0 +1,31 @@
1
+ h1 Retries
2
+
3
+ - if @retries.size > 0
4
+ == slim :_paging, :locals => { :url => "#{root_path}retries" }
5
+
6
+ form action="#{root_path}retries" method="post"
7
+ table class="table table-striped table-bordered"
8
+ tr
9
+ th
10
+ input type="checkbox" class="check_all"
11
+ th Next Retry
12
+ th Retry Count
13
+ th Queue
14
+ th Worker
15
+ th Args
16
+ - @retries.each do |(msg, score)|
17
+ tr
18
+ td
19
+ input type='checkbox' name='score[]' value='#{score}'
20
+ td
21
+ a href="#{root_path}retries/#{score}"== relative_time(Time.at(score))
22
+ td= msg['retry_count']
23
+ td
24
+ a href="#{root_path}queues/#{msg['queue']}" #{msg['queue']}
25
+ td= msg['class']
26
+ td= display_args(msg['args'])
27
+ input.btn.btn-primary type="submit" name="retry" value="Retry Now"
28
+ input.btn.btn-danger type="submit" name="delete" value="Delete"
29
+ - else
30
+ p No retries found.
31
+ a href="#{root_path}" Back
@@ -0,0 +1,52 @@
1
+ header
2
+ h1 Job
3
+
4
+ - @retries.each do |msg|
5
+ table class="table table-striped table-bordered"
6
+ tbody
7
+ tr
8
+ th Queue
9
+ td
10
+ a href="#{root_path}queues/#{msg['queue']}" #{msg['queue']}
11
+ tr
12
+ th Job Class
13
+ td
14
+ code= msg['class']
15
+ tr
16
+ th Job Arguments
17
+ td
18
+ code= display_args(msg['args'], 1000)
19
+ - if msg['retry_count'] > 0
20
+ tr
21
+ th Retry Count
22
+ td= msg['retry_count']
23
+ tr
24
+ th Last Retry
25
+ td== relative_time(Time.parse(msg['retried_at']))
26
+ - else
27
+ tr
28
+ th Originally Failed
29
+ td== relative_time(Time.parse(msg['failed_at']))
30
+ tr
31
+ th Next Retry
32
+ td== relative_time(Time.at(@score))
33
+
34
+ h1 Error
35
+ table class="table table-striped table-bordered"
36
+ tbody
37
+ tr
38
+ th Error Class
39
+ td
40
+ code= msg['error_class']
41
+ tr
42
+ th Error Message
43
+ td= msg['error_message']
44
+ - if !msg['error_backtrace'].nil?
45
+ tr
46
+ th Error Backtrace
47
+ td
48
+ code== msg['error_backtrace'].join("<br/>")
49
+ form.form-horizontal action="#{root_path}retries/#{@score}" method="post"
50
+ a.btn href="#{root_path}retries" &larr; Back
51
+ input.btn.btn-primary type="submit" name="retry" value="Retry Now"
52
+ input.btn.btn-danger type="submit" name="delete" value="Delete"
@@ -0,0 +1,27 @@
1
+ h1 Scheduled Jobs
2
+
3
+ - if @scheduled.size > 0
4
+ == slim :_paging, :locals => { :url => "#{root_path}scheduled" }
5
+
6
+ form action="#{root_path}scheduled" method="post"
7
+ table class="table table-striped table-bordered"
8
+ tr
9
+ th
10
+ input type="checkbox" class="check_all"
11
+ th When
12
+ th Queue
13
+ th Worker
14
+ th Args
15
+ - @scheduled.each do |(msg, score)|
16
+ tr
17
+ td
18
+ input type='checkbox' name='score[]' value='#{score}'
19
+ td== relative_time(Time.at(score))
20
+ td
21
+ a href="#{root_path}queues/#{msg['queue']}" #{msg['queue']}
22
+ td= msg['class']
23
+ td= display_args(msg['args'])
24
+ input.btn.btn-danger type="submit" name="delete" value="Delete"
25
+ - else
26
+ p No scheduled jobs found.
27
+ a href="#{root_path}" Back
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: creeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,17 +10,33 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-05-29 00:00:00.000000000 Z
13
+ date: 2012-08-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: pry
16
+ name: redis
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '3'
31
+ - !ruby/object:Gem::Dependency
32
+ name: redis-namespace
17
33
  requirement: !ruby/object:Gem::Requirement
18
34
  none: false
19
35
  requirements:
20
36
  - - ! '>='
21
37
  - !ruby/object:Gem::Version
22
38
  version: '0'
23
- type: :development
39
+ type: :runtime
24
40
  prerelease: false
25
41
  version_requirements: !ruby/object:Gem::Requirement
26
42
  none: false
@@ -29,7 +45,87 @@ dependencies:
29
45
  - !ruby/object:Gem::Version
30
46
  version: '0'
31
47
  - !ruby/object:Gem::Dependency
32
- name: rake
48
+ name: beanstalk-client
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: connection_pool
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 0.9.2
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 0.9.2
79
+ - !ruby/object:Gem::Dependency
80
+ name: celluloid
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 0.11.1
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 0.11.1
95
+ - !ruby/object:Gem::Dependency
96
+ name: kgio
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: multi_json
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: '1'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: '1'
127
+ - !ruby/object:Gem::Dependency
128
+ name: pry
33
129
  requirement: !ruby/object:Gem::Requirement
34
130
  none: false
35
131
  requirements:
@@ -45,7 +141,7 @@ dependencies:
45
141
  - !ruby/object:Gem::Version
46
142
  version: '0'
47
143
  - !ruby/object:Gem::Dependency
48
- name: rspec
144
+ name: rake
49
145
  requirement: !ruby/object:Gem::Requirement
50
146
  none: false
51
147
  requirements:
@@ -61,14 +157,14 @@ dependencies:
61
157
  - !ruby/object:Gem::Version
62
158
  version: '0'
63
159
  - !ruby/object:Gem::Dependency
64
- name: beanstalk-client
160
+ name: rspec
65
161
  requirement: !ruby/object:Gem::Requirement
66
162
  none: false
67
163
  requirements:
68
164
  - - ! '>='
69
165
  - !ruby/object:Gem::Version
70
166
  version: '0'
71
- type: :runtime
167
+ type: :development
72
168
  prerelease: false
73
169
  version_requirements: !ruby/object:Gem::Requirement
74
170
  none: false
@@ -77,14 +173,14 @@ dependencies:
77
173
  - !ruby/object:Gem::Version
78
174
  version: '0'
79
175
  - !ruby/object:Gem::Dependency
80
- name: celluloid
176
+ name: sinatra
81
177
  requirement: !ruby/object:Gem::Requirement
82
178
  none: false
83
179
  requirements:
84
180
  - - ! '>='
85
181
  - !ruby/object:Gem::Version
86
182
  version: '0'
87
- type: :runtime
183
+ type: :development
88
184
  prerelease: false
89
185
  version_requirements: !ruby/object:Gem::Requirement
90
186
  none: false
@@ -93,14 +189,14 @@ dependencies:
93
189
  - !ruby/object:Gem::Version
94
190
  version: '0'
95
191
  - !ruby/object:Gem::Dependency
96
- name: kgio
192
+ name: slim
97
193
  requirement: !ruby/object:Gem::Requirement
98
194
  none: false
99
195
  requirements:
100
196
  - - ! '>='
101
197
  - !ruby/object:Gem::Version
102
198
  version: '0'
103
- type: :runtime
199
+ type: :development
104
200
  prerelease: false
105
201
  version_requirements: !ruby/object:Gem::Requirement
106
202
  none: false
@@ -108,36 +204,189 @@ dependencies:
108
204
  - - ! '>='
109
205
  - !ruby/object:Gem::Version
110
206
  version: '0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: actionmailer
209
+ requirement: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ~>
213
+ - !ruby/object:Gem::Version
214
+ version: '3'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ~>
221
+ - !ruby/object:Gem::Version
222
+ version: '3'
223
+ - !ruby/object:Gem::Dependency
224
+ name: activerecord
225
+ requirement: !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ~>
229
+ - !ruby/object:Gem::Version
230
+ version: '3'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ none: false
235
+ requirements:
236
+ - - ~>
237
+ - !ruby/object:Gem::Version
238
+ version: '3'
111
239
  description: Creeper is an evented version of Stalker
112
240
  email:
113
241
  - lyondhill@gmail.com
114
242
  - potatosaladx@gmail.com
115
243
  executables:
116
244
  - creeper
245
+ - creeperctl
117
246
  extensions: []
118
247
  extra_rdoc_files: []
119
248
  files:
120
249
  - .gitignore
121
250
  - .rspec
251
+ - .rvmrc
122
252
  - Gemfile
253
+ - Guardfile
123
254
  - LICENSE
124
255
  - README.md
125
256
  - Rakefile
126
257
  - bin/creeper
258
+ - bin/creeperctl
259
+ - config.ru
127
260
  - creeper.gemspec
128
261
  - examples/jack.rb
129
262
  - lib/creeper.rb
130
- - lib/creeper/celluloid_ext.rb
131
- - lib/creeper/creep.rb
132
- - lib/creeper/err_logger.rb
133
- - lib/creeper/launcher.rb
134
- - lib/creeper/out_logger.rb
263
+ - lib/creeper/beanstalk_connection.rb
264
+ - lib/creeper/cli.rb
265
+ - lib/creeper/client.rb
266
+ - lib/creeper/core_ext.rb
267
+ - lib/creeper/exception_handler.rb
268
+ - lib/creeper/extensions/action_mailer.rb
269
+ - lib/creeper/extensions/active_record.rb
270
+ - lib/creeper/extensions/generic_proxy.rb
271
+ - lib/creeper/fetch.rb
272
+ - lib/creeper/legacy.rb
273
+ - lib/creeper/logging.rb
274
+ - lib/creeper/manager.rb
275
+ - lib/creeper/middleware/chain.rb
276
+ - lib/creeper/middleware/server/active_record.rb
277
+ - lib/creeper/middleware/server/logging.rb
278
+ - lib/creeper/middleware/server/retry_jobs.rb
279
+ - lib/creeper/middleware/server/timeout.rb
280
+ - lib/creeper/paginator.rb
281
+ - lib/creeper/processor.rb
282
+ - lib/creeper/rails.rb
283
+ - lib/creeper/redis_connection.rb
284
+ - lib/creeper/testing.rb
285
+ - lib/creeper/util.rb
135
286
  - lib/creeper/version.rb
287
+ - lib/creeper/web.rb
136
288
  - lib/creeper/worker.rb
137
- - spec/lib/creeper/session_spec.rb
138
- - spec/lib/creeper/worker_spec.rb
289
+ - spec/dummy/.gitignore
290
+ - spec/dummy/Gemfile
291
+ - spec/dummy/README.rdoc
292
+ - spec/dummy/Rakefile
293
+ - spec/dummy/app/assets/images/rails.png
294
+ - spec/dummy/app/assets/javascripts/application.js
295
+ - spec/dummy/app/assets/stylesheets/application.css
296
+ - spec/dummy/app/controllers/application_controller.rb
297
+ - spec/dummy/app/controllers/work_controller.rb
298
+ - spec/dummy/app/helpers/application_helper.rb
299
+ - spec/dummy/app/mailers/.gitkeep
300
+ - spec/dummy/app/mailers/user_mailer.rb
301
+ - spec/dummy/app/models/.gitkeep
302
+ - spec/dummy/app/models/post.rb
303
+ - spec/dummy/app/views/layouts/application.html.erb
304
+ - spec/dummy/app/views/user_mailer/greetings.html.erb
305
+ - spec/dummy/app/views/work/index.html.erb
306
+ - spec/dummy/app/workers/fast_worker.rb
307
+ - spec/dummy/app/workers/hard_worker.rb
308
+ - spec/dummy/app/workers/lazy_worker.rb
309
+ - spec/dummy/app/workers/suicidal_worker.rb
310
+ - spec/dummy/config.ru
311
+ - spec/dummy/config/application.rb
312
+ - spec/dummy/config/boot.rb
313
+ - spec/dummy/config/creeper.yml
314
+ - spec/dummy/config/database.yml
315
+ - spec/dummy/config/environment.rb
316
+ - spec/dummy/config/environments/development.rb
317
+ - spec/dummy/config/environments/production.rb
318
+ - spec/dummy/config/environments/test.rb
319
+ - spec/dummy/config/initializers/backtrace_silencers.rb
320
+ - spec/dummy/config/initializers/creeper.rb
321
+ - spec/dummy/config/initializers/inflections.rb
322
+ - spec/dummy/config/initializers/mime_types.rb
323
+ - spec/dummy/config/initializers/secret_token.rb
324
+ - spec/dummy/config/initializers/session_store.rb
325
+ - spec/dummy/config/initializers/wrap_parameters.rb
326
+ - spec/dummy/config/locales/en.yml
327
+ - spec/dummy/config/routes.rb
328
+ - spec/dummy/db/migrate/20120123214055_create_posts.rb
329
+ - spec/dummy/db/schema.rb
330
+ - spec/dummy/db/seeds.rb
331
+ - spec/dummy/lib/assets/.gitkeep
332
+ - spec/dummy/lib/tasks/.gitkeep
333
+ - spec/dummy/log/.gitkeep
334
+ - spec/dummy/public/404.html
335
+ - spec/dummy/public/422.html
336
+ - spec/dummy/public/500.html
337
+ - spec/dummy/public/favicon.ico
338
+ - spec/dummy/public/index.html
339
+ - spec/dummy/public/robots.txt
340
+ - spec/dummy/script/rails
341
+ - spec/dummy/vendor/assets/javascripts/.gitkeep
342
+ - spec/dummy/vendor/assets/stylesheets/.gitkeep
343
+ - spec/dummy/vendor/plugins/.gitkeep
344
+ - spec/lib/creeper/cli_spec.rb
345
+ - spec/lib/creeper/client_spec.rb
346
+ - spec/lib/creeper/exception_handler_spec.rb
347
+ - spec/lib/creeper/processor_spec.rb
348
+ - spec/lib/creeper/testing_spec.rb
139
349
  - spec/lib/creeper_spec.rb
140
350
  - spec/spec_helper.rb
351
+ - spec/support/config.yml
352
+ - spec/support/fake_env.rb
353
+ - spec/support/workers/base_worker.rb
354
+ - spec/support/workers/my_worker.rb
355
+ - spec/support/workers/queued_worker.rb
356
+ - spec/support/workers/real_worker.rb
357
+ - web/assets/images/bootstrap/glyphicons-halflings-white.png
358
+ - web/assets/images/bootstrap/glyphicons-halflings.png
359
+ - web/assets/javascripts/application.js
360
+ - web/assets/javascripts/vendor/bootstrap.js
361
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-alert.js
362
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-button.js
363
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-carousel.js
364
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-collapse.js
365
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-dropdown.js
366
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-modal.js
367
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-popover.js
368
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-scrollspy.js
369
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-tab.js
370
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-tooltip.js
371
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-transition.js
372
+ - web/assets/javascripts/vendor/bootstrap/bootstrap-typeahead.js
373
+ - web/assets/javascripts/vendor/jquery.js
374
+ - web/assets/javascripts/vendor/jquery.timeago.js
375
+ - web/assets/stylesheets/application.css
376
+ - web/assets/stylesheets/layout.css
377
+ - web/assets/stylesheets/vendor/bootstrap-responsive.css
378
+ - web/assets/stylesheets/vendor/bootstrap.css
379
+ - web/views/_paging.slim
380
+ - web/views/_summary.slim
381
+ - web/views/_workers.slim
382
+ - web/views/index.slim
383
+ - web/views/layout.slim
384
+ - web/views/poll.slim
385
+ - web/views/queue.slim
386
+ - web/views/queues.slim
387
+ - web/views/retries.slim
388
+ - web/views/retry.slim
389
+ - web/views/scheduled.slim
141
390
  homepage: https://github.com/potatosalad/creeper
142
391
  licenses: []
143
392
  post_install_message:
@@ -150,22 +399,91 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
399
  - - ! '>='
151
400
  - !ruby/object:Gem::Version
152
401
  version: '0'
402
+ segments:
403
+ - 0
404
+ hash: -3899601002688585292
153
405
  required_rubygems_version: !ruby/object:Gem::Requirement
154
406
  none: false
155
407
  requirements:
156
408
  - - ! '>='
157
409
  - !ruby/object:Gem::Version
158
410
  version: '0'
411
+ segments:
412
+ - 0
413
+ hash: -3899601002688585292
159
414
  requirements: []
160
415
  rubyforge_project:
161
- rubygems_version: 1.8.23
416
+ rubygems_version: 1.8.24
162
417
  signing_key:
163
418
  specification_version: 3
164
419
  summary: A better solution for io bound jobs, same as stalker in functionality but
165
420
  more evented
166
421
  test_files:
167
- - spec/lib/creeper/session_spec.rb
168
- - spec/lib/creeper/worker_spec.rb
422
+ - spec/dummy/.gitignore
423
+ - spec/dummy/Gemfile
424
+ - spec/dummy/README.rdoc
425
+ - spec/dummy/Rakefile
426
+ - spec/dummy/app/assets/images/rails.png
427
+ - spec/dummy/app/assets/javascripts/application.js
428
+ - spec/dummy/app/assets/stylesheets/application.css
429
+ - spec/dummy/app/controllers/application_controller.rb
430
+ - spec/dummy/app/controllers/work_controller.rb
431
+ - spec/dummy/app/helpers/application_helper.rb
432
+ - spec/dummy/app/mailers/.gitkeep
433
+ - spec/dummy/app/mailers/user_mailer.rb
434
+ - spec/dummy/app/models/.gitkeep
435
+ - spec/dummy/app/models/post.rb
436
+ - spec/dummy/app/views/layouts/application.html.erb
437
+ - spec/dummy/app/views/user_mailer/greetings.html.erb
438
+ - spec/dummy/app/views/work/index.html.erb
439
+ - spec/dummy/app/workers/fast_worker.rb
440
+ - spec/dummy/app/workers/hard_worker.rb
441
+ - spec/dummy/app/workers/lazy_worker.rb
442
+ - spec/dummy/app/workers/suicidal_worker.rb
443
+ - spec/dummy/config.ru
444
+ - spec/dummy/config/application.rb
445
+ - spec/dummy/config/boot.rb
446
+ - spec/dummy/config/creeper.yml
447
+ - spec/dummy/config/database.yml
448
+ - spec/dummy/config/environment.rb
449
+ - spec/dummy/config/environments/development.rb
450
+ - spec/dummy/config/environments/production.rb
451
+ - spec/dummy/config/environments/test.rb
452
+ - spec/dummy/config/initializers/backtrace_silencers.rb
453
+ - spec/dummy/config/initializers/creeper.rb
454
+ - spec/dummy/config/initializers/inflections.rb
455
+ - spec/dummy/config/initializers/mime_types.rb
456
+ - spec/dummy/config/initializers/secret_token.rb
457
+ - spec/dummy/config/initializers/session_store.rb
458
+ - spec/dummy/config/initializers/wrap_parameters.rb
459
+ - spec/dummy/config/locales/en.yml
460
+ - spec/dummy/config/routes.rb
461
+ - spec/dummy/db/migrate/20120123214055_create_posts.rb
462
+ - spec/dummy/db/schema.rb
463
+ - spec/dummy/db/seeds.rb
464
+ - spec/dummy/lib/assets/.gitkeep
465
+ - spec/dummy/lib/tasks/.gitkeep
466
+ - spec/dummy/log/.gitkeep
467
+ - spec/dummy/public/404.html
468
+ - spec/dummy/public/422.html
469
+ - spec/dummy/public/500.html
470
+ - spec/dummy/public/favicon.ico
471
+ - spec/dummy/public/index.html
472
+ - spec/dummy/public/robots.txt
473
+ - spec/dummy/script/rails
474
+ - spec/dummy/vendor/assets/javascripts/.gitkeep
475
+ - spec/dummy/vendor/assets/stylesheets/.gitkeep
476
+ - spec/dummy/vendor/plugins/.gitkeep
477
+ - spec/lib/creeper/cli_spec.rb
478
+ - spec/lib/creeper/client_spec.rb
479
+ - spec/lib/creeper/exception_handler_spec.rb
480
+ - spec/lib/creeper/processor_spec.rb
481
+ - spec/lib/creeper/testing_spec.rb
169
482
  - spec/lib/creeper_spec.rb
170
483
  - spec/spec_helper.rb
171
- has_rdoc:
484
+ - spec/support/config.yml
485
+ - spec/support/fake_env.rb
486
+ - spec/support/workers/base_worker.rb
487
+ - spec/support/workers/my_worker.rb
488
+ - spec/support/workers/queued_worker.rb
489
+ - spec/support/workers/real_worker.rb