racecar 0.3.0.beta1 → 0.3.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.
- checksums.yaml +4 -4
- data/Procfile +2 -0
- data/README.md +9 -1
- data/lib/racecar/cli.rb +15 -5
- data/lib/racecar/config.rb +1 -5
- data/lib/racecar/ctl.rb +1 -1
- data/lib/racecar/rails_config_file_loader.rb +4 -5
- data/lib/racecar/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0651e97f7403aacaf9494cb2cc2833b7b6040a5
|
4
|
+
data.tar.gz: d5849ff77aec0112c92d56937cb4ab30d926dc16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5781c4b863eefed5f336c5cfd5f7832ed8d6c248f5064eb7a1729222676c0ed88663dc7db1ca9f7d1adda5dc470317fdd78ea3c15246ab4d4eb23d6480f57977
|
7
|
+
data.tar.gz: bcb8e7d8b5d1aed13c68d7257381d0d710979dde5dbcc34ba9e7649ce53e3e11031deaa410fc9b046f5914690eec41d114ff7ee38a16ee554f96f4259b983524
|
data/Procfile
ADDED
data/README.md
CHANGED
@@ -13,7 +13,8 @@ Using [ruby-kafka](https://github.com/zendesk/ruby-kafka) directly can be a chal
|
|
13
13
|
3. [Configuration](#configuration)
|
14
14
|
4. [Testing consumers](#testing-consumers)
|
15
15
|
5. [Deploying consumers](#deploying-consumers)
|
16
|
-
6. [
|
16
|
+
6. [Logging](#logging)
|
17
|
+
7. [Operations](#operations)
|
17
18
|
3. [Development](#development)
|
18
19
|
4. [Contributing](#contributing)
|
19
20
|
5. [Copyright and license](#copyright-and-license)
|
@@ -255,6 +256,13 @@ If you've ever used Heroku you'll recognize the format – indeed, deploying to
|
|
255
256
|
With Foreman, you can easily run these processes locally by executing `foreman run`; in production you'll want to _export_ to another process management format such as Upstart or Runit. [capistrano-foreman](https://github.com/hyperoslo/capistrano-foreman) allows you to do this with Capistrano.
|
256
257
|
|
257
258
|
|
259
|
+
### Logging
|
260
|
+
|
261
|
+
By default, Racecar will log to `STDOUT`. If you're using Rails, your application code will use whatever logger you've configured there.
|
262
|
+
|
263
|
+
In order to make Racecar log its own operations to a log file, set the `logfile` configuration variable or pass `--log filename.log` to the `racecar` command.
|
264
|
+
|
265
|
+
|
258
266
|
### Operations
|
259
267
|
|
260
268
|
In order to gracefully shut down a Racecar consumer process, send it the `SIGTERM` signal. Most process supervisors such as Runit and Kubernetes send this signal when shutting down a process, so using those systems will make things easier.
|
data/lib/racecar/cli.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "optparse"
|
2
|
+
require "logger"
|
2
3
|
require "racecar/rails_config_file_loader"
|
3
4
|
|
4
5
|
module Racecar
|
@@ -11,9 +12,13 @@ module Racecar
|
|
11
12
|
require lib
|
12
13
|
end
|
13
14
|
|
15
|
+
opts.on("-l", "--log LOGFILE", "Log to the specified file") do |logfile|
|
16
|
+
Racecar.config.logfile = logfile
|
17
|
+
end
|
18
|
+
|
14
19
|
opts.on_tail("--version", "Show Racecar version") do
|
15
20
|
require "racecar/version"
|
16
|
-
puts "Racecar #{Racecar::VERSION}"
|
21
|
+
$stderr.puts "Racecar #{Racecar::VERSION}"
|
17
22
|
exit
|
18
23
|
end
|
19
24
|
end
|
@@ -22,7 +27,7 @@ module Racecar
|
|
22
27
|
|
23
28
|
consumer_name = args.first or raise Racecar::Error, "no consumer specified"
|
24
29
|
|
25
|
-
puts "=> Starting Racecar consumer #{consumer_name}..."
|
30
|
+
$stderr.puts "=> Starting Racecar consumer #{consumer_name}..."
|
26
31
|
|
27
32
|
RailsConfigFileLoader.load!
|
28
33
|
|
@@ -34,14 +39,19 @@ module Racecar
|
|
34
39
|
|
35
40
|
Racecar.config.validate!
|
36
41
|
|
37
|
-
|
38
|
-
|
42
|
+
if Racecar.config.logfile
|
43
|
+
$stderr.puts "=> Logging to #{Racecar.config.logfile}"
|
44
|
+
Racecar.logger = Logger.new(Racecar.config.logfile)
|
45
|
+
end
|
46
|
+
|
47
|
+
$stderr.puts "=> Wrooooom!"
|
48
|
+
$stderr.puts "=> Ctrl-C to shutdown consumer"
|
39
49
|
|
40
50
|
processor = consumer_class.new
|
41
51
|
|
42
52
|
Racecar.run(processor)
|
43
53
|
|
44
|
-
puts "=> Shut down"
|
54
|
+
$stderr.puts "=> Shut down"
|
45
55
|
end
|
46
56
|
end
|
47
57
|
end
|
data/lib/racecar/config.rb
CHANGED
@@ -21,7 +21,7 @@ module Racecar
|
|
21
21
|
max_wait_time
|
22
22
|
|
23
23
|
error_handler
|
24
|
-
|
24
|
+
logfile
|
25
25
|
|
26
26
|
ssl_ca_cert
|
27
27
|
ssl_ca_cert_file_path
|
@@ -43,7 +43,6 @@ module Racecar
|
|
43
43
|
DEFAULT_CONFIG = {
|
44
44
|
brokers: ["localhost:9092"],
|
45
45
|
client_id: "racecar",
|
46
|
-
group_id_prefix: nil,
|
47
46
|
|
48
47
|
subscriptions: [],
|
49
48
|
|
@@ -72,9 +71,6 @@ module Racecar
|
|
72
71
|
|
73
72
|
# Default is to do nothing on exceptions.
|
74
73
|
error_handler: proc {},
|
75
|
-
|
76
|
-
# Default is to only log to the logger.
|
77
|
-
log_to_stdout: false,
|
78
74
|
}
|
79
75
|
|
80
76
|
attr_accessor(*ALLOWED_KEYS)
|
data/lib/racecar/ctl.rb
CHANGED
@@ -6,21 +6,20 @@ module Racecar
|
|
6
6
|
begin
|
7
7
|
require "rails"
|
8
8
|
|
9
|
-
puts "=> Detected Rails, booting application..."
|
9
|
+
$stderr.puts "=> Detected Rails, booting application..."
|
10
10
|
|
11
11
|
require "./config/environment"
|
12
12
|
|
13
13
|
Racecar.config.load_file(config_file, Rails.env)
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
# In development, write Rails logs to STDOUT. This mirrors what e.g.
|
16
|
+
# Unicorn does.
|
17
|
+
if Rails.env.development?
|
17
18
|
console = ActiveSupport::Logger.new($stdout)
|
18
19
|
console.formatter = Rails.logger.formatter
|
19
20
|
console.level = Rails.logger.level
|
20
21
|
Rails.logger.extend(ActiveSupport::Logger.broadcast(console))
|
21
22
|
end
|
22
|
-
|
23
|
-
Racecar.logger = Rails.logger
|
24
23
|
rescue LoadError
|
25
24
|
# Not a Rails application.
|
26
25
|
end
|
data/lib/racecar/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: racecar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.0
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Schierbeck
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-08-
|
12
|
+
date: 2017-08-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ruby-kafka
|
@@ -81,6 +81,7 @@ files:
|
|
81
81
|
- ".rspec"
|
82
82
|
- Gemfile
|
83
83
|
- LICENSE.txt
|
84
|
+
- Procfile
|
84
85
|
- README.md
|
85
86
|
- Rakefile
|
86
87
|
- bin/console
|
@@ -118,9 +119,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
119
|
version: '0'
|
119
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
121
|
requirements:
|
121
|
-
- - "
|
122
|
+
- - ">="
|
122
123
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
124
|
+
version: '0'
|
124
125
|
requirements: []
|
125
126
|
rubyforge_project:
|
126
127
|
rubygems_version: 2.4.5.1
|