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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 659f1d92ff0ba2e4ca3c162ab36255868cfa4f1e
4
- data.tar.gz: fd29bc29fbf787899ce18dcf91b165a684c205cc
3
+ metadata.gz: e5dcba46949e37d272cf9ac9a12c72daaddbe556
4
+ data.tar.gz: db38e13b52b95c3c804970314390a19e4a324ab4
5
5
  SHA512:
6
- metadata.gz: 1a7c57379229dc78237034625d3cbbb75089c35aef118976b0b2252e7d58a8a214c98f7018aa5584c868c8d74d34dbe46c9003c725d7a34502a67d2668d3e5f2
7
- data.tar.gz: c31787d123c46fd1892291ed1d5f96d2859f8c76d7e7f18588d440c98b5fc55425243390348c7a614386177cefd43efe92658f163f6daf646856a63e35258cdc
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 'migration.rb', 'db/migrate/create_say_when_tables.rb'
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 :say_when_jobs, :force => true do |t|
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 :say_when_jobs, [:next_fire_at, :status]
33
- add_index :say_when_jobs, [:scheduled_type, :scheduled_id]
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 :say_when_job_executions, :force => true do |t|
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 :say_when_job_executions, :job_id
44
- add_index :say_when_job_executions, [:status, :start_at, :end_at]
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 :say_when_job_executions
49
- drop_table :say_when_jobs
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 = 'say_when_job_executions'
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 = 'say_when_jobs'
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
- result
162
+
163
+ execution.result
149
164
  end
150
165
  end
151
166
 
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module SayWhen
4
- VERSION = '2.0.2'
4
+ VERSION = '2.1.0'
5
5
  end
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 :say_when_jobs, :force => true do |t|
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 :say_when_job_executions, :force => true do |t|
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 :say_when_jobs, :status
35
- add_index :say_when_jobs, :next_fire_at
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
@@ -31,6 +31,7 @@ Celluloid.boot
31
31
  SayWhen.configure do |options|
32
32
  options[:storage_strategy] = :memory
33
33
  options[:processor_strategy] = :test
34
+ options[:table_prefix] = 'test_'
34
35
  end
35
36
 
36
37
  SayWhen.logger = Logger.new('/dev/null')
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.2
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: 2017-07-10 00:00:00.000000000 Z
11
+ date: 2018-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport