resque-worker-killer 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9828594da6a4652add1a03fcd46ad5b3f3e06c68
4
- data.tar.gz: d31927afb2293274a0755de5047821fb5c99cb87
3
+ metadata.gz: a1a23bdc379d3a62bce0e338cf942521a66cb9c8
4
+ data.tar.gz: c17c3e400a02b970e191d6fc5dbe3637fa6d19e9
5
5
  SHA512:
6
- metadata.gz: 0d5c4fa9aebe743de6fd326ebc9e5b7491c7a79bc4fd438c5ac69cd101ddb8d59887ea1b5220a7f4424a021be808c2d4c3ee5c9e975b16c1b261ec771851e727
7
- data.tar.gz: 9da4c88ed48f8a63f05e6b51938258b187192a756fe95a9be4f34da4d831f2d73b02b9f5441bf91b8d9a4ad2fd5846997550523564b0540ecd7179fd1a8265db
6
+ metadata.gz: ffce9a6ea932cf1aed36a2b309b883543cd6e79d1233f99f61b6dfe9cdf7c2104f1bab409692c07e878e28273349c6019e9450c9c38b745b84f4d85af6ad911c
7
+ data.tar.gz: 0c18a8d59ac8ee941f4ecfaaa656980dc29e59f8d97dcc9df5b8c410b865515f1cfcb74b0edf0ebf63cbaec37c5b69527d05b6199bb21fceaf47e904225e2993
@@ -1,3 +1,9 @@
1
+ # 0.1.1 (2016/08/21)
2
+
3
+ Changes:
4
+
5
+ * Change the default value of `@worker_killer_max_term` to `(ENV['TERM_CHILD'] ? 10 : 0)` from 10.
6
+
1
7
  # 0.1.0 (2016/08/20)
2
8
 
3
9
  First vesion
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  resque-worker-killer gem provides automatic kill of a forked child of Resque worker based on process memory size (RSS) not to exceed the maximum allowed memory size.
6
6
 
7
+ The name was inspired by [unicorn-worker-killer](https://github.com/kzk/unicorn-worker-killer) :-p
8
+
7
9
  ## Installation
8
10
 
9
11
  Add this line to your application's Gemfile:
@@ -49,17 +51,29 @@ class MyJob
49
51
  end
50
52
  ```
51
53
 
52
- `TERM_CHILD` environment variable must be set on starting resque worker:
54
+ ### TERM_CHILD=1
55
+
56
+ Resque requires to set `TERM_CHILD` environment variable to accept killing a forked child with SIGTERM.
53
57
 
54
58
  ```
55
59
  $ TERM_CHILD=1 bundle exec rake resque:work
56
60
  ```
61
+ Thus,
62
+
63
+ * Without `TERM_CHILD=1`, set `@worker_killter_max_term = 0` to send SIGKILL immediately
64
+ * With `TERM_CHILD=1`, set `@worker_killer_max_term > 0` to try SIGTERM first, then SIGKILL
65
+
66
+ With `TERM_CHILD=1`, `Resque::TermException` is raised if a forked child is killed by SIGTERM.
67
+
68
+ ## Options
57
69
 
58
70
  Options are:
59
71
 
60
72
  * `@worker_killer_monitor_interval`: Monotring interval to check RSS size (default: 1.0 sec)
61
73
  * `@worker_killer_mem_limit`: RSS usage limit, in killobytes (default: 300MB)
62
- * `@worker_killer_max_term`: Try kiling child process with SIGTERM in `@worker_killer_max_term` times (default: 10), then SIGKILL if it still does not die. Please note that resque worker must be started `TERM_CHILD=1` environment variable.
74
+ * `@worker_killer_max_term`: Try kiling child process with SIGTERM in `max_term` times, then SIGKILL if it still does not die.
75
+ Please note that setting `TERM_CHILD` environment variable is required to accept killing the child with SIGTERM.
76
+ The default is, 10 with `TERM_CHILD=1`, 0 without `TERM_CHILD=1`.
63
77
  * `@worker_killer_verbose`: Verbose log
64
78
  * `@worker_killer_logger`: Logger instance (default: Resque.logger)
65
79
 
@@ -8,15 +8,15 @@ class MyJob
8
8
  extend Resque::Plugins::WorkerKiller
9
9
  @worker_killer_monitor_interval = 0.5 # sec
10
10
  @worker_killer_mem_limit = 10_000 # KB
11
- @worker_killer_max_term = 10
11
+ @worker_killer_max_term = (ENV['TERM_CHILD'] ? 10 : 0)
12
12
  @worker_killer_verbose = true
13
13
  @worker_killer_logger = ::Logger.new(STDOUT)
14
14
 
15
15
  def self.perform(params)
16
16
  puts 'started'
17
- sleep 3
17
+ sleep 1
18
18
  str = 'a' * 10 * 1024 * 1024
19
- sleep 7
19
+ sleep 3
20
20
  puts 'finished'
21
21
  rescue Resque::TermException => e # env TERM_CHILD=1
22
22
  puts 'terminated'
@@ -13,7 +13,7 @@ module Resque
13
13
  end
14
14
 
15
15
  def worker_killer_max_term
16
- @worker_killer_max_term ||= 10
16
+ @worker_killer_max_term ||= (ENV['TERM_CHILD'] ? 10 : 0)
17
17
  end
18
18
 
19
19
  def worker_killer_verbose
@@ -1,7 +1,7 @@
1
1
  module Resque
2
2
  module Plugins
3
3
  module WorkerKiller
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque-worker-killer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naotoshi Seo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-19 00:00:00.000000000 Z
11
+ date: 2016-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: resque