say_when 2.0.2 → 2.1.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/lib/generators/say_when/migration/migration_generator.rb +5 -1
- data/lib/generators/say_when/migration/templates/migration.rb +8 -8
- data/lib/say_when/configuration.rb +2 -0
- data/lib/say_when/storage/active_record_strategy.rb +20 -5
- data/lib/say_when/version.rb +1 -1
- data/test/db/schema.rb +5 -5
- data/test/minitest_helper.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5dcba46949e37d272cf9ac9a12c72daaddbe556
|
4
|
+
data.tar.gz: db38e13b52b95c3c804970314390a19e4a324ab4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bae2cfdcbdce0cb620911871e0f7185d8860f266b2cfd84310ff56b2ad29e7f04efe6ccc0d404b34d3333f3b85ff8924bc29b0c2c632d6c98c43ea8948749e7
|
7
|
+
data.tar.gz: 6cc782023a88170ddd9313b30c6118de4df3584b67fddf8d671adab17a9cba4299d9d65bca58982946b762c4753bcefb00172153cc0452c5898fb06a56505db3
|
@@ -14,8 +14,12 @@ module SayWhen
|
|
14
14
|
|
15
15
|
argument :name, type: :string, default: 'random_name'
|
16
16
|
|
17
|
+
def prefix
|
18
|
+
SayWhen.options[:table_prefix] || ''
|
19
|
+
end
|
20
|
+
|
17
21
|
def manifest
|
18
|
-
migration_template
|
22
|
+
migration_template('migration.rb', 'db/migrate/create_say_when_tables.rb')
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
@@ -4,7 +4,7 @@ class CreateSayWhenTables < ActiveRecord::Migration
|
|
4
4
|
|
5
5
|
def self.up
|
6
6
|
|
7
|
-
create_table
|
7
|
+
create_table :<%= prefix %>say_when_jobs, :force => true do |t|
|
8
8
|
t.string :group
|
9
9
|
t.string :name
|
10
10
|
|
@@ -29,10 +29,10 @@ class CreateSayWhenTables < ActiveRecord::Migration
|
|
29
29
|
t.timestamps null: false
|
30
30
|
end
|
31
31
|
|
32
|
-
add_index
|
33
|
-
add_index
|
32
|
+
add_index :<%= prefix %>say_when_jobs, [:next_fire_at, :status]
|
33
|
+
add_index :<%= prefix %>say_when_jobs, [:scheduled_type, :scheduled_id]
|
34
34
|
|
35
|
-
create_table
|
35
|
+
create_table :<%= prefix %>say_when_job_executions, :force => true do |t|
|
36
36
|
t.integer :job_id
|
37
37
|
t.string :status
|
38
38
|
t.text :result
|
@@ -40,12 +40,12 @@ class CreateSayWhenTables < ActiveRecord::Migration
|
|
40
40
|
t.datetime :end_at
|
41
41
|
end
|
42
42
|
|
43
|
-
add_index
|
44
|
-
add_index
|
43
|
+
add_index :<%= prefix %>say_when_job_executions, :job_id
|
44
|
+
add_index :<%= prefix %>say_when_job_executions, [:status, :start_at, :end_at]
|
45
45
|
end
|
46
46
|
|
47
47
|
def self.down
|
48
|
-
drop_table
|
49
|
-
drop_table
|
48
|
+
drop_table :<%= prefix %>say_when_job_executions
|
49
|
+
drop_table :<%= prefix %>say_when_jobs
|
50
50
|
end
|
51
51
|
end
|
@@ -10,6 +10,8 @@ module SayWhen
|
|
10
10
|
defaults[:tick_length] = (ENV['SAY_WHEN_TICK_LENGTH'] || '5').to_i
|
11
11
|
defaults[:queue] = ENV['SAY_WHEN_QUEUE'] || 'default'
|
12
12
|
defaults[:reset_acquired_length] = (ENV['SAY_WHEN_RESET_ACQUIRED_LENGTH'] || '3600').to_i
|
13
|
+
defaults[:store_executions] = false
|
14
|
+
defaults[:table_prefix] = ''
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
@@ -35,14 +35,14 @@ module SayWhen
|
|
35
35
|
end
|
36
36
|
|
37
37
|
class JobExecution < ActiveRecord::Base
|
38
|
-
self.table_name =
|
38
|
+
self.table_name = "#{SayWhen.options[:table_prefix]}say_when_job_executions"
|
39
39
|
belongs_to :job, class_name: 'SayWhen::Storage::ActiveRecordStrategy::Job'
|
40
40
|
end
|
41
41
|
|
42
42
|
class Job < ActiveRecord::Base
|
43
43
|
include SayWhen::Storage::BaseJob
|
44
44
|
|
45
|
-
self.table_name =
|
45
|
+
self.table_name = "#{SayWhen.options[:table_prefix]}say_when_jobs"
|
46
46
|
|
47
47
|
serialize :trigger_options
|
48
48
|
serialize :data
|
@@ -132,11 +132,25 @@ module SayWhen
|
|
132
132
|
# default impl with some error handling and result recording
|
133
133
|
def execute
|
134
134
|
result = nil
|
135
|
+
if SayWhen.options[:store_executions]
|
136
|
+
result = execute_with_stored_result
|
137
|
+
else
|
138
|
+
begin
|
139
|
+
result = self.execute_job(data)
|
140
|
+
SayWhen.logger.info("complete - job: #{self.inspect}, result: #{result}")
|
141
|
+
rescue Object => ex
|
142
|
+
result = "#{ex.class.name}: #{ex.message}\n\t#{ex.backtrace.join("\n\t")}"
|
143
|
+
SayWhen.logger.error("error - job: #{self.inspect}, exception: #{result}")
|
144
|
+
end
|
145
|
+
end
|
146
|
+
result
|
147
|
+
end
|
148
|
+
|
149
|
+
def execute_with_stored_result
|
135
150
|
execution = JobExecution.create(job: self, status: STATE_EXECUTING, start_at: Time.now)
|
136
151
|
|
137
152
|
begin
|
138
|
-
result = self.execute_job(data)
|
139
|
-
execution.result = result
|
153
|
+
execution.result = self.execute_job(data)
|
140
154
|
execution.status = 'complete'
|
141
155
|
rescue Object => ex
|
142
156
|
execution.result = "#{ex.class.name}: #{ex.message}\n\t#{ex.backtrace.join("\n\t")}"
|
@@ -145,7 +159,8 @@ module SayWhen
|
|
145
159
|
|
146
160
|
execution.end_at = Time.now
|
147
161
|
execution.save!
|
148
|
-
|
162
|
+
|
163
|
+
execution.result
|
149
164
|
end
|
150
165
|
end
|
151
166
|
|
data/lib/say_when/version.rb
CHANGED
data/test/db/schema.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
ActiveRecord::Schema.define(:version => 0) do
|
4
4
|
|
5
|
-
create_table :
|
5
|
+
create_table :test_say_when_jobs, :force => true do |t|
|
6
6
|
|
7
7
|
t.string :status
|
8
8
|
|
@@ -23,7 +23,7 @@ ActiveRecord::Schema.define(:version => 0) do
|
|
23
23
|
t.timestamps null: false
|
24
24
|
end
|
25
25
|
|
26
|
-
create_table :
|
26
|
+
create_table :test_say_when_job_executions, :force => true do |t|
|
27
27
|
t.integer :job_id
|
28
28
|
t.string :status
|
29
29
|
t.text :result
|
@@ -31,8 +31,8 @@ ActiveRecord::Schema.define(:version => 0) do
|
|
31
31
|
t.datetime :end_at
|
32
32
|
end
|
33
33
|
|
34
|
-
add_index :
|
35
|
-
add_index :
|
34
|
+
add_index :test_say_when_jobs, :status
|
35
|
+
add_index :test_say_when_jobs, :next_fire_at
|
36
36
|
|
37
37
|
|
38
|
-
end
|
38
|
+
end
|
data/test/minitest_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: say_when
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kuklewicz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|