belated 0.2.0 → 0.3.3
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/.gitignore +3 -1
- data/.rubocop.yml +6 -0
- data/CHANGELOG.md +15 -0
- data/Gemfile.lock +1 -1
- data/README.md +11 -6
- data/belated.gemspec +1 -1
- data/lib/belated.rb +50 -28
- data/lib/belated/client.rb +4 -2
- data/lib/belated/logging.rb +17 -0
- data/lib/belated/version.rb +1 -1
- data/lib/belated/worker.rb +11 -7
- metadata +3 -69
- data/dummy/Rakefile +0 -8
- data/dummy/app/assets/config/manifest.js +0 -3
- data/dummy/app/assets/images/.keep +0 -0
- data/dummy/app/assets/stylesheets/application.css +0 -15
- data/dummy/app/channels/application_cable/channel.rb +0 -6
- data/dummy/app/channels/application_cable/connection.rb +0 -6
- data/dummy/app/controllers/application_controller.rb +0 -5
- data/dummy/app/controllers/concerns/.keep +0 -0
- data/dummy/app/helpers/application_helper.rb +0 -4
- data/dummy/app/javascript/packs/application.js +0 -15
- data/dummy/app/jobs/application_job.rb +0 -9
- data/dummy/app/mailers/application_mailer.rb +0 -6
- data/dummy/app/models/application_record.rb +0 -5
- data/dummy/app/models/concerns/.keep +0 -0
- data/dummy/app/models/user.rb +0 -2
- data/dummy/app/views/application/index.html.erb +0 -4
- data/dummy/app/views/layouts/application.html.erb +0 -15
- data/dummy/app/views/layouts/mailer.html.erb +0 -13
- data/dummy/app/views/layouts/mailer.text.erb +0 -1
- data/dummy/bin/rails +0 -6
- data/dummy/bin/rake +0 -6
- data/dummy/bin/setup +0 -35
- data/dummy/config.ru +0 -8
- data/dummy/config/application.rb +0 -23
- data/dummy/config/boot.rb +0 -7
- data/dummy/config/cable.yml +0 -10
- data/dummy/config/credentials.yml.enc +0 -1
- data/dummy/config/database.yml +0 -25
- data/dummy/config/environment.rb +0 -7
- data/dummy/config/environments/development.rb +0 -78
- data/dummy/config/environments/production.rb +0 -122
- data/dummy/config/environments/test.rb +0 -51
- data/dummy/config/initializers/application_controller_renderer.rb +0 -9
- data/dummy/config/initializers/backtrace_silencers.rb +0 -10
- data/dummy/config/initializers/content_security_policy.rb +0 -29
- data/dummy/config/initializers/cookies_serializer.rb +0 -7
- data/dummy/config/initializers/filter_parameter_logging.rb +0 -8
- data/dummy/config/initializers/inflections.rb +0 -17
- data/dummy/config/initializers/mime_types.rb +0 -5
- data/dummy/config/initializers/permissions_policy.rb +0 -12
- data/dummy/config/initializers/wrap_parameters.rb +0 -16
- data/dummy/config/locales/en.yml +0 -33
- data/dummy/config/master.key +0 -1
- data/dummy/config/puma.rb +0 -45
- data/dummy/config/routes.rb +0 -5
- data/dummy/config/storage.yml +0 -34
- data/dummy/db/migrate/20210613015406_create_users.rb +0 -10
- data/dummy/db/production.sqlite3 +0 -0
- data/dummy/db/schema.rb +0 -20
- data/dummy/db/test.sqlite3 +0 -0
- data/dummy/lib/assets/.keep +0 -0
- data/dummy/log/.keep +0 -0
- data/dummy/log/development.log +0 -0
- data/dummy/log/production.log +0 -3
- data/dummy/log/test.log +0 -595
- data/dummy/public/404.html +0 -67
- data/dummy/public/422.html +0 -67
- data/dummy/public/500.html +0 -66
- data/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/dummy/public/apple-touch-icon.png +0 -0
- data/dummy/public/favicon.ico +0 -0
- data/dummy/storage/.keep +0 -0
- data/dummy/tmp/.keep +0 -0
- data/dummy/tmp/development_secret.txt +0 -1
- data/dummy/tmp/pids/.keep +0 -0
- data/dummy/tmp/storage/.keep +0 -0
- data/hard_worker_dump +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 639e202c5feb0ecb2af5bcd7f22815128f670f36c2aa793ce5bc0c107477a92f
|
|
4
|
+
data.tar.gz: 65864414d040a9b1cd3e92897a97b5f596683c42cb6941c5cdbaee731502a622
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bda697be3405328560b19afbf9a90cc8cac0a8487e627ba0d6ee02ef2bbd6bf933cf3235fa312a1f817224ade6837da390d6794742a5110b255ca6052cafb838
|
|
7
|
+
data.tar.gz: da4c2c0b49901ca28aed07eff2d279293c28a3121031500cc4846627d01619fbd24c52b0c382c8c4091d46238df53d827449c7092a85286072a1b74600402313
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -31,6 +31,9 @@ Style/GlobalVars:
|
|
|
31
31
|
Style/BlockDelimiters:
|
|
32
32
|
EnforcedStyle: braces_for_chaining
|
|
33
33
|
|
|
34
|
+
Style/ModuleFunction:
|
|
35
|
+
EnforcedStyle: extend_self
|
|
36
|
+
|
|
34
37
|
Metrics/BlockLength:
|
|
35
38
|
Exclude:
|
|
36
39
|
- 'spec/**/*.rb'
|
|
@@ -38,5 +41,8 @@ Metrics/BlockLength:
|
|
|
38
41
|
Metrics/ClassLength:
|
|
39
42
|
Max: 200
|
|
40
43
|
|
|
44
|
+
Metrics/MethodLength:
|
|
45
|
+
Max: 15
|
|
46
|
+
|
|
41
47
|
Security/YAMLLoad:
|
|
42
48
|
Enabled: false
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.3.3] - 2021-08-01
|
|
4
|
+
|
|
5
|
+
- Shutdown trapped signal thread, make sure :shutdown is not recorded as a job.
|
|
6
|
+
|
|
7
|
+
## [0.3.2] - 2021-07-31
|
|
8
|
+
|
|
9
|
+
- Trap INT and TERM, so now the shutdown is a little bit more graceful.
|
|
10
|
+
|
|
11
|
+
## [0.3.1] - 2021-07-29
|
|
12
|
+
|
|
13
|
+
- Remove dummy app from gem... size should go down quite a bit.
|
|
14
|
+
|
|
15
|
+
## [0.3.0] - 2021-07-29
|
|
16
|
+
|
|
17
|
+
- Now there is logging! By default logs to stdout, but you can configure the logger by setting a different one through `Belated.config.logger`.
|
|
3
18
|
## [0.2.0] - 2021-07-25
|
|
4
19
|
|
|
5
20
|
- Workers now rescue StandardError and keep on working!
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -10,18 +10,23 @@ It uses dRuby to do the communication! Which is absolute great. No need for Redi
|
|
|
10
10
|
|
|
11
11
|
TODO LIST:
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
- ~~Parse options from command line, eg. `--workers 10`~~(Done!)
|
|
17
|
-
- Don't crash on errors
|
|
18
|
-
- Add a logger
|
|
13
|
+
- Catch SIGTERM and friends
|
|
14
|
+
- Now supports it, partly.
|
|
15
|
+
- Don't crash on errors (Partially done)
|
|
19
16
|
- Make it possible to schedule jobs
|
|
20
17
|
- Maybe support ActiveJob?
|
|
21
18
|
- Have a web UI
|
|
22
19
|
- Do some performance testing
|
|
23
20
|
- Add a section telling people to use Sidekiq if they can
|
|
24
21
|
|
|
22
|
+
DONE
|
|
23
|
+
|
|
24
|
+
- ~~Marshal the job queue into a file so you don't lose all progress~~
|
|
25
|
+
(Ended up using YAML)
|
|
26
|
+
- ~~Add a logger~~
|
|
27
|
+
- ~~Support Rails~~ (Supported!)
|
|
28
|
+
- ~~Parse options from command line, eg. `--workers 10`~~(Done!)
|
|
29
|
+
|
|
25
30
|
## Installation
|
|
26
31
|
|
|
27
32
|
Add this line to your application's Gemfile:
|
data/belated.gemspec
CHANGED
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
# Specify which files should be added to the gem when it is released.
|
|
25
25
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
26
26
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
27
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
|
27
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|dummy|spec|features)/}) }
|
|
28
28
|
end
|
|
29
29
|
spec.bindir = 'bin'
|
|
30
30
|
spec.executables = ['belated']
|
data/lib/belated.rb
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative 'belated/version'
|
|
4
4
|
require_relative 'belated/worker'
|
|
5
|
+
require_relative 'belated/logging'
|
|
5
6
|
require 'drb'
|
|
6
7
|
require 'yaml'
|
|
7
8
|
require 'singleton'
|
|
8
9
|
require 'dry-configurable'
|
|
9
10
|
require 'belated/client'
|
|
11
|
+
require 'logger'
|
|
10
12
|
|
|
11
13
|
# Belated is a pure Ruby job backend.
|
|
12
14
|
# It has limited functionality, as it only accepts
|
|
@@ -16,8 +18,9 @@ require 'belated/client'
|
|
|
16
18
|
# and reloads them when started again.
|
|
17
19
|
class Belated
|
|
18
20
|
extend Dry::Configurable
|
|
21
|
+
include Logging
|
|
19
22
|
include Singleton unless $TESTING
|
|
20
|
-
URI =
|
|
23
|
+
URI = 'druby://localhost:8788'
|
|
21
24
|
FILE_NAME = 'belated_dump'
|
|
22
25
|
@@queue = Queue.new
|
|
23
26
|
|
|
@@ -26,25 +29,48 @@ class Belated
|
|
|
26
29
|
setting :workers, 1
|
|
27
30
|
setting :connect, true
|
|
28
31
|
setting :environment, 'development'
|
|
32
|
+
setting :logger, Logger.new($stdout), reader: true
|
|
33
|
+
setting :log_level, :info, reader: true
|
|
29
34
|
|
|
30
35
|
# Since it's running as a singleton, we need something to start it up.
|
|
31
36
|
# Aliased for testing purposes.
|
|
32
37
|
# This is only run from the bin file.
|
|
33
38
|
def start
|
|
34
|
-
boot_app
|
|
35
|
-
load_jobs
|
|
39
|
+
boot_app && load_jobs
|
|
36
40
|
@worker_list = []
|
|
37
41
|
Belated.config.workers.times do |_i|
|
|
38
42
|
@worker_list << Thread.new { Worker.new }
|
|
39
43
|
end
|
|
40
44
|
return unless Belated.config.connect
|
|
41
45
|
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
connect!
|
|
47
|
+
banner_and_info
|
|
48
|
+
trap_signals
|
|
44
49
|
DRb.thread.join
|
|
45
50
|
end
|
|
46
51
|
alias initialize start
|
|
47
52
|
|
|
53
|
+
# Handles connection to DRb server.
|
|
54
|
+
def connect!
|
|
55
|
+
DRb.start_service(URI, @@queue, verbose: true)
|
|
56
|
+
rescue DRb::DRbConnError, Errno::EADDRINUSE
|
|
57
|
+
Belated.logger.error 'Could not connect to DRb server.'
|
|
58
|
+
retry
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def trap_signals
|
|
62
|
+
%w[INT TERM].each do |signal|
|
|
63
|
+
Signal.trap(signal) do
|
|
64
|
+
@worker_list.length.times do
|
|
65
|
+
@@queue.push(:shutdown)
|
|
66
|
+
end
|
|
67
|
+
Thread.new { stop_workers }
|
|
68
|
+
sleep 0.1 until @@queue.empty?
|
|
69
|
+
exit
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
48
74
|
def boot_app
|
|
49
75
|
return unless rails?
|
|
50
76
|
|
|
@@ -59,6 +85,7 @@ class Belated
|
|
|
59
85
|
end
|
|
60
86
|
|
|
61
87
|
def load_jobs
|
|
88
|
+
log "reloading... if file exists #{File.exist?(Belated::FILE_NAME)}"
|
|
62
89
|
return unless File.exist?(Belated::FILE_NAME)
|
|
63
90
|
|
|
64
91
|
jobs = YAML.load(File.binread(FILE_NAME))
|
|
@@ -69,40 +96,28 @@ class Belated
|
|
|
69
96
|
end
|
|
70
97
|
|
|
71
98
|
def reload
|
|
99
|
+
log 'reloading...'
|
|
72
100
|
load_jobs
|
|
73
101
|
end
|
|
74
102
|
|
|
75
103
|
def stop_workers
|
|
76
|
-
@worker_list.each do |worker|
|
|
77
|
-
Thread.kill(worker)
|
|
78
|
-
end
|
|
79
|
-
return if @@queue.empty?
|
|
80
|
-
|
|
81
|
-
class_array = []
|
|
82
|
-
|
|
83
|
-
@@queue.size.times do |_i|
|
|
84
|
-
next if (klass_or_proc = @@queue.pop).instance_of?(Proc)
|
|
85
|
-
|
|
86
|
-
class_array << klass_or_proc
|
|
87
|
-
end
|
|
88
|
-
File.open(FILE_NAME, 'wb') { |f| f.write(YAML.dump(class_array)) }
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def self.stop_workers
|
|
92
104
|
@worker_list&.each do |worker|
|
|
105
|
+
sleep 0.1 if worker.alive?
|
|
93
106
|
Thread.kill(worker)
|
|
94
107
|
end
|
|
95
108
|
class_array = []
|
|
96
109
|
@@queue.size.times do |_i|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
110
|
+
unless (klass = @@queue.pop).instance_of?(Proc) || klass == :shutdown
|
|
111
|
+
class_array << klass
|
|
112
|
+
end
|
|
100
113
|
end
|
|
101
|
-
File.open(FILE_NAME, 'wb') { |f| f.write(YAML.dump(class_array)) }
|
|
114
|
+
pp File.open(FILE_NAME, 'wb') { |f| f.write(YAML.dump(class_array)) }
|
|
115
|
+
exit unless $TESTING
|
|
102
116
|
end
|
|
103
117
|
|
|
104
118
|
def banner
|
|
105
119
|
<<-'BANNER'
|
|
120
|
+
|
|
106
121
|
.----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------.
|
|
107
122
|
| .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. |
|
|
108
123
|
| | ______ | | | _________ | | | _____ | | | __ | | | _________ | | | _________ | | | ________ | |
|
|
@@ -118,9 +133,9 @@ class Belated
|
|
|
118
133
|
end
|
|
119
134
|
|
|
120
135
|
def banner_and_info
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
136
|
+
log banner
|
|
137
|
+
log "Currently running Belated version #{Belated::VERSION}"
|
|
138
|
+
log %(Belated running #{@worker_list&.length.to_i} workers on #{URI}...)
|
|
124
139
|
end
|
|
125
140
|
|
|
126
141
|
def stats
|
|
@@ -130,6 +145,13 @@ class Belated
|
|
|
130
145
|
}
|
|
131
146
|
end
|
|
132
147
|
|
|
148
|
+
def self.kill_and_clear_queue!
|
|
149
|
+
@worker_list&.each do |worker|
|
|
150
|
+
Thread.kill(worker)
|
|
151
|
+
end
|
|
152
|
+
clear_queue!
|
|
153
|
+
end
|
|
154
|
+
|
|
133
155
|
def self.clear_queue!
|
|
134
156
|
@@queue.clear
|
|
135
157
|
end
|
data/lib/belated/client.rb
CHANGED
|
@@ -4,13 +4,15 @@ class Belated
|
|
|
4
4
|
|
|
5
5
|
def initialize
|
|
6
6
|
server_uri = Belated::URI
|
|
7
|
+
# @bank =
|
|
7
8
|
DRb.start_service
|
|
8
9
|
self.queue = DRbObject.new_with_uri(server_uri)
|
|
9
10
|
end
|
|
10
11
|
|
|
11
|
-
def
|
|
12
|
+
def perform(job)
|
|
12
13
|
queue.push(job)
|
|
13
14
|
end
|
|
14
|
-
alias
|
|
15
|
+
alias perform_belated perform
|
|
16
|
+
alias perform_later perform
|
|
15
17
|
end
|
|
16
18
|
end
|
data/lib/belated/version.rb
CHANGED
data/lib/belated/worker.rb
CHANGED
|
@@ -1,29 +1,33 @@
|
|
|
1
|
+
require_relative 'logging'
|
|
1
2
|
class Belated
|
|
2
3
|
# The worker class that actually gets the jobs from the queue
|
|
3
4
|
# and calls them. Expects the jobs to be procs.
|
|
4
5
|
class Worker
|
|
6
|
+
include Logging
|
|
7
|
+
|
|
5
8
|
def initialize
|
|
6
9
|
start_working
|
|
7
10
|
end
|
|
8
11
|
|
|
9
12
|
def start_working
|
|
10
13
|
loop do
|
|
11
|
-
job = Belated.fetch_job
|
|
12
|
-
|
|
14
|
+
next unless (job = Belated.fetch_job)
|
|
15
|
+
|
|
16
|
+
break if job == :shutdown
|
|
13
17
|
|
|
14
|
-
call_job(job)
|
|
15
|
-
|
|
18
|
+
log call_job(job)
|
|
19
|
+
log 'fetching jobs...'
|
|
16
20
|
end
|
|
17
21
|
end
|
|
18
22
|
|
|
19
23
|
def call_job(job)
|
|
20
24
|
if job.respond_to?(:call)
|
|
21
|
-
|
|
25
|
+
job.call
|
|
22
26
|
else
|
|
23
|
-
|
|
27
|
+
job.perform
|
|
24
28
|
end
|
|
25
29
|
rescue StandardError => e
|
|
26
|
-
|
|
30
|
+
e.inspect
|
|
27
31
|
end
|
|
28
32
|
end
|
|
29
33
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: belated
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sampo Kuokkanen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-08-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: drb
|
|
@@ -78,75 +78,9 @@ files:
|
|
|
78
78
|
- bin/bundle
|
|
79
79
|
- bin/console
|
|
80
80
|
- bin/setup
|
|
81
|
-
- dummy/Rakefile
|
|
82
|
-
- dummy/app/assets/config/manifest.js
|
|
83
|
-
- dummy/app/assets/images/.keep
|
|
84
|
-
- dummy/app/assets/stylesheets/application.css
|
|
85
|
-
- dummy/app/channels/application_cable/channel.rb
|
|
86
|
-
- dummy/app/channels/application_cable/connection.rb
|
|
87
|
-
- dummy/app/controllers/application_controller.rb
|
|
88
|
-
- dummy/app/controllers/concerns/.keep
|
|
89
|
-
- dummy/app/helpers/application_helper.rb
|
|
90
|
-
- dummy/app/javascript/packs/application.js
|
|
91
|
-
- dummy/app/jobs/application_job.rb
|
|
92
|
-
- dummy/app/mailers/application_mailer.rb
|
|
93
|
-
- dummy/app/models/application_record.rb
|
|
94
|
-
- dummy/app/models/concerns/.keep
|
|
95
|
-
- dummy/app/models/user.rb
|
|
96
|
-
- dummy/app/views/application/index.html.erb
|
|
97
|
-
- dummy/app/views/layouts/application.html.erb
|
|
98
|
-
- dummy/app/views/layouts/mailer.html.erb
|
|
99
|
-
- dummy/app/views/layouts/mailer.text.erb
|
|
100
|
-
- dummy/bin/rails
|
|
101
|
-
- dummy/bin/rake
|
|
102
|
-
- dummy/bin/setup
|
|
103
|
-
- dummy/config.ru
|
|
104
|
-
- dummy/config/application.rb
|
|
105
|
-
- dummy/config/boot.rb
|
|
106
|
-
- dummy/config/cable.yml
|
|
107
|
-
- dummy/config/credentials.yml.enc
|
|
108
|
-
- dummy/config/database.yml
|
|
109
|
-
- dummy/config/environment.rb
|
|
110
|
-
- dummy/config/environments/development.rb
|
|
111
|
-
- dummy/config/environments/production.rb
|
|
112
|
-
- dummy/config/environments/test.rb
|
|
113
|
-
- dummy/config/initializers/application_controller_renderer.rb
|
|
114
|
-
- dummy/config/initializers/backtrace_silencers.rb
|
|
115
|
-
- dummy/config/initializers/content_security_policy.rb
|
|
116
|
-
- dummy/config/initializers/cookies_serializer.rb
|
|
117
|
-
- dummy/config/initializers/filter_parameter_logging.rb
|
|
118
|
-
- dummy/config/initializers/inflections.rb
|
|
119
|
-
- dummy/config/initializers/mime_types.rb
|
|
120
|
-
- dummy/config/initializers/permissions_policy.rb
|
|
121
|
-
- dummy/config/initializers/wrap_parameters.rb
|
|
122
|
-
- dummy/config/locales/en.yml
|
|
123
|
-
- dummy/config/master.key
|
|
124
|
-
- dummy/config/puma.rb
|
|
125
|
-
- dummy/config/routes.rb
|
|
126
|
-
- dummy/config/storage.yml
|
|
127
|
-
- dummy/db/migrate/20210613015406_create_users.rb
|
|
128
|
-
- dummy/db/production.sqlite3
|
|
129
|
-
- dummy/db/schema.rb
|
|
130
|
-
- dummy/db/test.sqlite3
|
|
131
|
-
- dummy/lib/assets/.keep
|
|
132
|
-
- dummy/log/.keep
|
|
133
|
-
- dummy/log/development.log
|
|
134
|
-
- dummy/log/production.log
|
|
135
|
-
- dummy/log/test.log
|
|
136
|
-
- dummy/public/404.html
|
|
137
|
-
- dummy/public/422.html
|
|
138
|
-
- dummy/public/500.html
|
|
139
|
-
- dummy/public/apple-touch-icon-precomposed.png
|
|
140
|
-
- dummy/public/apple-touch-icon.png
|
|
141
|
-
- dummy/public/favicon.ico
|
|
142
|
-
- dummy/storage/.keep
|
|
143
|
-
- dummy/tmp/.keep
|
|
144
|
-
- dummy/tmp/development_secret.txt
|
|
145
|
-
- dummy/tmp/pids/.keep
|
|
146
|
-
- dummy/tmp/storage/.keep
|
|
147
|
-
- hard_worker_dump
|
|
148
81
|
- lib/belated.rb
|
|
149
82
|
- lib/belated/client.rb
|
|
83
|
+
- lib/belated/logging.rb
|
|
150
84
|
- lib/belated/rails.rb
|
|
151
85
|
- lib/belated/version.rb
|
|
152
86
|
- lib/belated/worker.rb
|