journaled 2.4.0 → 4.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.
- checksums.yaml +4 -4
- data/README.md +68 -19
- data/Rakefile +7 -1
- data/app/jobs/journaled/application_job.rb +4 -0
- data/app/jobs/journaled/delivery_job.rb +105 -0
- data/app/models/journaled/change.rb +3 -3
- data/app/models/journaled/change_writer.rb +5 -5
- data/app/models/journaled/event.rb +2 -2
- data/app/models/journaled/writer.rb +8 -6
- data/lib/journaled/engine.rb +5 -0
- data/lib/journaled/relation_change_protection.rb +1 -1
- data/lib/journaled/version.rb +1 -1
- data/lib/journaled.rb +23 -5
- data/spec/dummy/config/application.rb +1 -2
- data/spec/dummy/config/database.yml +4 -19
- data/spec/dummy/config/environments/development.rb +0 -13
- data/spec/dummy/config/environments/test.rb +3 -5
- data/spec/dummy/db/schema.rb +3 -16
- data/spec/{models/journaled/delivery_spec.rb → jobs/journaled/delivery_job_spec.rb} +82 -28
- data/spec/lib/journaled_spec.rb +39 -0
- data/spec/models/database_change_protection_spec.rb +19 -25
- data/spec/models/journaled/change_writer_spec.rb +10 -10
- data/spec/models/journaled/event_spec.rb +4 -4
- data/spec/models/journaled/writer_spec.rb +18 -15
- data/spec/rails_helper.rb +1 -2
- data/spec/spec_helper.rb +1 -3
- metadata +31 -74
- data/app/models/journaled/delivery.rb +0 -88
- data/config/routes.rb +0 -2
- data/lib/journaled/enqueue.rb +0 -13
- data/spec/dummy/config/environments/production.rb +0 -78
- data/spec/dummy/config/initializers/assets.rb +0 -8
- data/spec/dummy/db/migrate/20180606205114_create_delayed_jobs.rb +0 -18
- data/spec/support/delayed_job_spec_helper.rb +0 -11
metadata
CHANGED
@@ -1,34 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: journaled
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jake Lipson
|
8
8
|
- Corey Alexander
|
9
9
|
- Cyrus Eslami
|
10
10
|
- John Mileham
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2021-10-27 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '2'
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - "<"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: delayed_job
|
17
|
+
name: activejob
|
32
18
|
requirement: !ruby/object:Gem::Requirement
|
33
19
|
requirements:
|
34
20
|
- - ">="
|
@@ -42,7 +28,7 @@ dependencies:
|
|
42
28
|
- !ruby/object:Gem::Version
|
43
29
|
version: '0'
|
44
30
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
31
|
+
name: activerecord
|
46
32
|
requirement: !ruby/object:Gem::Requirement
|
47
33
|
requirements:
|
48
34
|
- - ">="
|
@@ -56,27 +42,21 @@ dependencies:
|
|
56
42
|
- !ruby/object:Gem::Version
|
57
43
|
version: '0'
|
58
44
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
45
|
+
name: aws-sdk-kinesis
|
60
46
|
requirement: !ruby/object:Gem::Requirement
|
61
47
|
requirements:
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: '5.1'
|
65
48
|
- - "<"
|
66
49
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
50
|
+
version: '2'
|
68
51
|
type: :runtime
|
69
52
|
prerelease: false
|
70
53
|
version_requirements: !ruby/object:Gem::Requirement
|
71
54
|
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '5.1'
|
75
55
|
- - "<"
|
76
56
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
57
|
+
version: '2'
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
59
|
+
name: json-schema
|
80
60
|
requirement: !ruby/object:Gem::Requirement
|
81
61
|
requirements:
|
82
62
|
- - ">="
|
@@ -90,41 +70,27 @@ dependencies:
|
|
90
70
|
- !ruby/object:Gem::Version
|
91
71
|
version: '0'
|
92
72
|
- !ruby/object:Gem::Dependency
|
93
|
-
name:
|
94
|
-
requirement: !ruby/object:Gem::Requirement
|
95
|
-
requirements:
|
96
|
-
- - "~>"
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: 2.2.0
|
99
|
-
type: :development
|
100
|
-
prerelease: false
|
101
|
-
version_requirements: !ruby/object:Gem::Requirement
|
102
|
-
requirements:
|
103
|
-
- - "~>"
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
version: 2.2.0
|
106
|
-
- !ruby/object:Gem::Dependency
|
107
|
-
name: delayed_job_active_record
|
73
|
+
name: railties
|
108
74
|
requirement: !ruby/object:Gem::Requirement
|
109
75
|
requirements:
|
110
76
|
- - ">="
|
111
77
|
- !ruby/object:Gem::Version
|
112
|
-
version: '
|
113
|
-
type: :
|
78
|
+
version: '5.2'
|
79
|
+
type: :runtime
|
114
80
|
prerelease: false
|
115
81
|
version_requirements: !ruby/object:Gem::Requirement
|
116
82
|
requirements:
|
117
83
|
- - ">="
|
118
84
|
- !ruby/object:Gem::Version
|
119
|
-
version: '
|
85
|
+
version: '5.2'
|
120
86
|
- !ruby/object:Gem::Dependency
|
121
|
-
name:
|
87
|
+
name: request_store
|
122
88
|
requirement: !ruby/object:Gem::Requirement
|
123
89
|
requirements:
|
124
90
|
- - ">="
|
125
91
|
- !ruby/object:Gem::Version
|
126
92
|
version: '0'
|
127
|
-
type: :
|
93
|
+
type: :runtime
|
128
94
|
prerelease: false
|
129
95
|
version_requirements: !ruby/object:Gem::Requirement
|
130
96
|
requirements:
|
@@ -132,19 +98,19 @@ dependencies:
|
|
132
98
|
- !ruby/object:Gem::Version
|
133
99
|
version: '0'
|
134
100
|
- !ruby/object:Gem::Dependency
|
135
|
-
name:
|
101
|
+
name: appraisal
|
136
102
|
requirement: !ruby/object:Gem::Requirement
|
137
103
|
requirements:
|
138
|
-
- - "
|
104
|
+
- - "~>"
|
139
105
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
106
|
+
version: 2.2.0
|
141
107
|
type: :development
|
142
108
|
prerelease: false
|
143
109
|
version_requirements: !ruby/object:Gem::Requirement
|
144
110
|
requirements:
|
145
|
-
- - "
|
111
|
+
- - "~>"
|
146
112
|
- !ruby/object:Gem::Version
|
147
|
-
version:
|
113
|
+
version: 2.2.0
|
148
114
|
- !ruby/object:Gem::Dependency
|
149
115
|
name: rspec-rails
|
150
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -216,19 +182,19 @@ dependencies:
|
|
216
182
|
- !ruby/object:Gem::Version
|
217
183
|
version: '0'
|
218
184
|
- !ruby/object:Gem::Dependency
|
219
|
-
name:
|
185
|
+
name: sqlite3
|
220
186
|
requirement: !ruby/object:Gem::Requirement
|
221
187
|
requirements:
|
222
|
-
- - "
|
188
|
+
- - ">="
|
223
189
|
- !ruby/object:Gem::Version
|
224
|
-
version: '
|
190
|
+
version: '0'
|
225
191
|
type: :development
|
226
192
|
prerelease: false
|
227
193
|
version_requirements: !ruby/object:Gem::Requirement
|
228
194
|
requirements:
|
229
|
-
- - "
|
195
|
+
- - ">="
|
230
196
|
- !ruby/object:Gem::Version
|
231
|
-
version: '
|
197
|
+
version: '0'
|
232
198
|
- !ruby/object:Gem::Dependency
|
233
199
|
name: timecop
|
234
200
|
requirement: !ruby/object:Gem::Requirement
|
@@ -272,24 +238,23 @@ files:
|
|
272
238
|
- README.md
|
273
239
|
- Rakefile
|
274
240
|
- app/controllers/concerns/journaled/actor.rb
|
241
|
+
- app/jobs/journaled/application_job.rb
|
242
|
+
- app/jobs/journaled/delivery_job.rb
|
275
243
|
- app/models/concerns/journaled/changes.rb
|
276
244
|
- app/models/journaled/actor_uri_provider.rb
|
277
245
|
- app/models/journaled/change.rb
|
278
246
|
- app/models/journaled/change_definition.rb
|
279
247
|
- app/models/journaled/change_writer.rb
|
280
|
-
- app/models/journaled/delivery.rb
|
281
248
|
- app/models/journaled/event.rb
|
282
249
|
- app/models/journaled/json_schema_model/validator.rb
|
283
250
|
- app/models/journaled/not_truly_exceptional_error.rb
|
284
251
|
- app/models/journaled/writer.rb
|
285
252
|
- config/initializers/change_protection.rb
|
286
|
-
- config/routes.rb
|
287
253
|
- config/spring.rb
|
288
254
|
- journaled_schemas/base_event.json
|
289
255
|
- journaled_schemas/journaled/change.json
|
290
256
|
- lib/journaled.rb
|
291
257
|
- lib/journaled/engine.rb
|
292
|
-
- lib/journaled/enqueue.rb
|
293
258
|
- lib/journaled/relation_change_protection.rb
|
294
259
|
- lib/journaled/rspec.rb
|
295
260
|
- lib/journaled/version.rb
|
@@ -304,9 +269,7 @@ files:
|
|
304
269
|
- spec/dummy/config/database.yml
|
305
270
|
- spec/dummy/config/environment.rb
|
306
271
|
- spec/dummy/config/environments/development.rb
|
307
|
-
- spec/dummy/config/environments/production.rb
|
308
272
|
- spec/dummy/config/environments/test.rb
|
309
|
-
- spec/dummy/config/initializers/assets.rb
|
310
273
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
311
274
|
- spec/dummy/config/initializers/cookies_serializer.rb
|
312
275
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
@@ -317,31 +280,29 @@ files:
|
|
317
280
|
- spec/dummy/config/locales/en.yml
|
318
281
|
- spec/dummy/config/routes.rb
|
319
282
|
- spec/dummy/config/secrets.yml
|
320
|
-
- spec/dummy/db/migrate/20180606205114_create_delayed_jobs.rb
|
321
283
|
- spec/dummy/db/schema.rb
|
322
284
|
- spec/dummy/public/404.html
|
323
285
|
- spec/dummy/public/422.html
|
324
286
|
- spec/dummy/public/500.html
|
325
287
|
- spec/dummy/public/favicon.ico
|
288
|
+
- spec/jobs/journaled/delivery_job_spec.rb
|
326
289
|
- spec/lib/journaled_spec.rb
|
327
290
|
- spec/models/concerns/journaled/actor_spec.rb
|
328
291
|
- spec/models/concerns/journaled/changes_spec.rb
|
329
292
|
- spec/models/database_change_protection_spec.rb
|
330
293
|
- spec/models/journaled/actor_uri_provider_spec.rb
|
331
294
|
- spec/models/journaled/change_writer_spec.rb
|
332
|
-
- spec/models/journaled/delivery_spec.rb
|
333
295
|
- spec/models/journaled/event_spec.rb
|
334
296
|
- spec/models/journaled/json_schema_model/validator_spec.rb
|
335
297
|
- spec/models/journaled/writer_spec.rb
|
336
298
|
- spec/rails_helper.rb
|
337
299
|
- spec/spec_helper.rb
|
338
|
-
- spec/support/delayed_job_spec_helper.rb
|
339
300
|
- spec/support/environment_spec_helper.rb
|
340
301
|
homepage: http://github.com/Betterment/journaled
|
341
302
|
licenses:
|
342
303
|
- MIT
|
343
304
|
metadata: {}
|
344
|
-
post_install_message:
|
305
|
+
post_install_message:
|
345
306
|
rdoc_options: []
|
346
307
|
require_paths:
|
347
308
|
- lib
|
@@ -357,7 +318,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
357
318
|
version: '0'
|
358
319
|
requirements: []
|
359
320
|
rubygems_version: 3.0.1
|
360
|
-
signing_key:
|
321
|
+
signing_key:
|
361
322
|
specification_version: 4
|
362
323
|
summary: Journaling for Betterment apps.
|
363
324
|
test_files:
|
@@ -368,7 +329,6 @@ test_files:
|
|
368
329
|
- spec/dummy/config/secrets.yml
|
369
330
|
- spec/dummy/config/routes.rb
|
370
331
|
- spec/dummy/config/locales/en.yml
|
371
|
-
- spec/dummy/config/environments/production.rb
|
372
332
|
- spec/dummy/config/environments/development.rb
|
373
333
|
- spec/dummy/config/environments/test.rb
|
374
334
|
- spec/dummy/config/environment.rb
|
@@ -380,7 +340,6 @@ test_files:
|
|
380
340
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
381
341
|
- spec/dummy/config/initializers/session_store.rb
|
382
342
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
383
|
-
- spec/dummy/config/initializers/assets.rb
|
384
343
|
- spec/dummy/config/initializers/cookies_serializer.rb
|
385
344
|
- spec/dummy/config/initializers/inflections.rb
|
386
345
|
- spec/dummy/config.ru
|
@@ -390,18 +349,16 @@ test_files:
|
|
390
349
|
- spec/dummy/public/500.html
|
391
350
|
- spec/dummy/public/404.html
|
392
351
|
- spec/dummy/db/schema.rb
|
393
|
-
- spec/dummy/db/migrate/20180606205114_create_delayed_jobs.rb
|
394
352
|
- spec/dummy/README.rdoc
|
395
353
|
- spec/models/journaled/json_schema_model/validator_spec.rb
|
396
354
|
- spec/models/journaled/actor_uri_provider_spec.rb
|
397
|
-
- spec/models/journaled/delivery_spec.rb
|
398
355
|
- spec/models/journaled/event_spec.rb
|
399
356
|
- spec/models/journaled/change_writer_spec.rb
|
400
357
|
- spec/models/journaled/writer_spec.rb
|
401
358
|
- spec/models/database_change_protection_spec.rb
|
402
359
|
- spec/models/concerns/journaled/changes_spec.rb
|
403
360
|
- spec/models/concerns/journaled/actor_spec.rb
|
404
|
-
- spec/support/delayed_job_spec_helper.rb
|
405
361
|
- spec/support/environment_spec_helper.rb
|
406
362
|
- spec/lib/journaled_spec.rb
|
363
|
+
- spec/jobs/journaled/delivery_job_spec.rb
|
407
364
|
- spec/rails_helper.rb
|
@@ -1,88 +0,0 @@
|
|
1
|
-
class Journaled::Delivery # rubocop:disable Betterment/ActiveJobPerformable
|
2
|
-
DEFAULT_REGION = 'us-east-1'.freeze
|
3
|
-
|
4
|
-
def initialize(serialized_event:, partition_key:, app_name:)
|
5
|
-
@serialized_event = serialized_event
|
6
|
-
@partition_key = partition_key
|
7
|
-
@app_name = app_name
|
8
|
-
end
|
9
|
-
|
10
|
-
def perform
|
11
|
-
kinesis_client.put_record record if Journaled.enabled?
|
12
|
-
rescue Aws::Kinesis::Errors::InternalFailure, Aws::Kinesis::Errors::ServiceUnavailable, Aws::Kinesis::Errors::Http503Error => e
|
13
|
-
Rails.logger.error "Kinesis Error - Server Error occurred - #{e.class}"
|
14
|
-
raise KinesisTemporaryFailure
|
15
|
-
rescue Seahorse::Client::NetworkingError => e
|
16
|
-
Rails.logger.error "Kinesis Error - Networking Error occurred - #{e.class}"
|
17
|
-
raise KinesisTemporaryFailure
|
18
|
-
end
|
19
|
-
|
20
|
-
def stream_name
|
21
|
-
env_var_name = [app_name&.upcase, 'JOURNALED_STREAM_NAME'].compact.join('_')
|
22
|
-
ENV.fetch(env_var_name)
|
23
|
-
end
|
24
|
-
|
25
|
-
def kinesis_client_config
|
26
|
-
{
|
27
|
-
region: ENV.fetch('AWS_DEFAULT_REGION', DEFAULT_REGION),
|
28
|
-
retry_limit: 0,
|
29
|
-
http_idle_timeout: Journaled.http_idle_timeout,
|
30
|
-
http_open_timeout: Journaled.http_open_timeout,
|
31
|
-
http_read_timeout: Journaled.http_read_timeout,
|
32
|
-
}.merge(credentials)
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
attr_reader :serialized_event, :partition_key, :app_name
|
38
|
-
|
39
|
-
def record
|
40
|
-
{
|
41
|
-
stream_name: stream_name,
|
42
|
-
data: serialized_event,
|
43
|
-
partition_key: partition_key,
|
44
|
-
}
|
45
|
-
end
|
46
|
-
|
47
|
-
def kinesis_client
|
48
|
-
Aws::Kinesis::Client.new(kinesis_client_config)
|
49
|
-
end
|
50
|
-
|
51
|
-
def credentials
|
52
|
-
if ENV.key?('JOURNALED_IAM_ROLE_ARN')
|
53
|
-
{
|
54
|
-
credentials: iam_assume_role_credentials,
|
55
|
-
}
|
56
|
-
else
|
57
|
-
legacy_credentials_hash_if_present
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def legacy_credentials_hash_if_present
|
62
|
-
if ENV.key?('RUBY_AWS_ACCESS_KEY_ID')
|
63
|
-
{
|
64
|
-
access_key_id: ENV.fetch('RUBY_AWS_ACCESS_KEY_ID'),
|
65
|
-
secret_access_key: ENV.fetch('RUBY_AWS_SECRET_ACCESS_KEY'),
|
66
|
-
}
|
67
|
-
else
|
68
|
-
{}
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def sts_client
|
73
|
-
Aws::STS::Client.new({
|
74
|
-
region: ENV.fetch('AWS_DEFAULT_REGION', DEFAULT_REGION),
|
75
|
-
}.merge(legacy_credentials_hash_if_present))
|
76
|
-
end
|
77
|
-
|
78
|
-
def iam_assume_role_credentials
|
79
|
-
@iam_assume_role_credentials ||= Aws::AssumeRoleCredentials.new(
|
80
|
-
client: sts_client,
|
81
|
-
role_arn: ENV.fetch('JOURNALED_IAM_ROLE_ARN'),
|
82
|
-
role_session_name: "JournaledAssumeRoleAccess",
|
83
|
-
)
|
84
|
-
end
|
85
|
-
|
86
|
-
class KinesisTemporaryFailure < NotTrulyExceptionalError
|
87
|
-
end
|
88
|
-
end
|
data/config/routes.rb
DELETED
data/lib/journaled/enqueue.rb
DELETED
@@ -1,78 +0,0 @@
|
|
1
|
-
Rails.application.configure do
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb.
|
3
|
-
|
4
|
-
# Code is not reloaded between requests.
|
5
|
-
config.cache_classes = true
|
6
|
-
|
7
|
-
# Eager load code on boot. This eager loads most of Rails and
|
8
|
-
# your application in memory, allowing both threaded web servers
|
9
|
-
# and those relying on copy on write to perform better.
|
10
|
-
# Rake tasks automatically ignore this option for performance.
|
11
|
-
config.eager_load = true
|
12
|
-
|
13
|
-
# Full error reports are disabled and caching is turned on.
|
14
|
-
config.consider_all_requests_local = false
|
15
|
-
config.action_controller.perform_caching = true
|
16
|
-
|
17
|
-
# Enable Rack::Cache to put a simple HTTP cache in front of your application
|
18
|
-
# Add `rack-cache` to your Gemfile before enabling this.
|
19
|
-
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
|
20
|
-
# config.action_dispatch.rack_cache = true
|
21
|
-
|
22
|
-
# Disable Rails's static asset server (Apache or nginx will already do this).
|
23
|
-
config.serve_static_assets = false
|
24
|
-
|
25
|
-
# Compress JavaScripts and CSS.
|
26
|
-
config.assets.js_compressor = :uglifier
|
27
|
-
# config.assets.css_compressor = :sass
|
28
|
-
|
29
|
-
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
30
|
-
config.assets.compile = false
|
31
|
-
|
32
|
-
# Generate digests for assets URLs.
|
33
|
-
config.assets.digest = true
|
34
|
-
|
35
|
-
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
|
36
|
-
|
37
|
-
# Specifies the header that your server uses for sending files.
|
38
|
-
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
|
39
|
-
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
|
40
|
-
|
41
|
-
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
42
|
-
# config.force_ssl = true
|
43
|
-
|
44
|
-
# Set to :debug to see everything in the log.
|
45
|
-
config.log_level = :info
|
46
|
-
|
47
|
-
# Prepend all log lines with the following tags.
|
48
|
-
# config.log_tags = [ :subdomain, :uuid ]
|
49
|
-
|
50
|
-
# Use a different logger for distributed setups.
|
51
|
-
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
|
52
|
-
|
53
|
-
# Use a different cache store in production.
|
54
|
-
# config.cache_store = :mem_cache_store
|
55
|
-
|
56
|
-
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
57
|
-
# config.action_controller.asset_host = "http://assets.example.com"
|
58
|
-
|
59
|
-
# Ignore bad email addresses and do not raise email delivery errors.
|
60
|
-
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
61
|
-
# config.action_mailer.raise_delivery_errors = false
|
62
|
-
|
63
|
-
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
64
|
-
# the I18n.default_locale when a translation cannot be found).
|
65
|
-
config.i18n.fallbacks = true
|
66
|
-
|
67
|
-
# Send deprecation notices to registered listeners.
|
68
|
-
config.active_support.deprecation = :notify
|
69
|
-
|
70
|
-
# Disable automatic flushing of the log to improve performance.
|
71
|
-
# config.autoflush_log = false
|
72
|
-
|
73
|
-
# Use default logging formatter so that PID and timestamp are not suppressed.
|
74
|
-
config.log_formatter = ::Logger::Formatter.new
|
75
|
-
|
76
|
-
# Do not dump schema after migrations.
|
77
|
-
config.active_record.dump_schema_after_migration = false
|
78
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
# Version of your assets, change this if you want to expire all your assets.
|
4
|
-
Rails.application.config.assets.version = '1.0'
|
5
|
-
|
6
|
-
# Precompile additional assets.
|
7
|
-
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
8
|
-
# Rails.application.config.assets.precompile += %w( search.js )
|
@@ -1,18 +0,0 @@
|
|
1
|
-
class CreateDelayedJobs < ActiveRecord::Migration[5.1]
|
2
|
-
def change
|
3
|
-
create_table :delayed_jobs do |t|
|
4
|
-
t.integer :priority, default: 0, null: false # Allows some jobs to jump to the front of the queue
|
5
|
-
t.integer :attempts, default: 0, null: false # Provides for retries, but still fail eventually.
|
6
|
-
t.text :handler, null: false # YAML-encoded string of the object that will do work
|
7
|
-
t.text :last_error # reason for last failure (See Note below)
|
8
|
-
t.datetime :run_at # When to run. Could be Time.zone.now for immediately, or sometime in the future.
|
9
|
-
t.datetime :locked_at # Set when a client is working on this object
|
10
|
-
t.datetime :failed_at # Set when all retries have failed (actually, by default, the record is deleted instead)
|
11
|
-
t.string :locked_by # Who is working on this object (if locked)
|
12
|
-
t.string :queue # The name of the queue this job is in
|
13
|
-
t.timestamps null: true
|
14
|
-
end
|
15
|
-
|
16
|
-
add_index :delayed_jobs, [:priority, :run_at], name: "delayed_jobs_priority"
|
17
|
-
end
|
18
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module DelayedJobSpecHelper
|
2
|
-
def with_jobs_delayed(opts = {})
|
3
|
-
work_off = opts.fetch(:work_off, true)
|
4
|
-
original = Delayed::Worker.delay_jobs
|
5
|
-
Delayed::Worker.delay_jobs = true
|
6
|
-
yield
|
7
|
-
ensure
|
8
|
-
Delayed::Worker.delay_jobs = original
|
9
|
-
Delayed::Worker.new.work_off if work_off
|
10
|
-
end
|
11
|
-
end
|