say_when 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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