simple_worker 1.0.10 → 1.0.11

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.
data/README.markdown CHANGED
@@ -263,6 +263,23 @@ You could easily merge mailers you're using in your application.
263
263
 
264
264
  if you already set auto_merge=true all your mailers already merged.
265
265
 
266
+ Configuring a Mailer Connection
267
+
268
+ If you are using Rails 3,your action_mailer connection would be configured automatically from your config
269
+
270
+ For non Rails 3 or if you want to use different mailer configs, you should add the following to your SimpleWorker config:
271
+
272
+ config.mailer = {
273
+ :address => "smtp.gmail.com",
274
+ :port => 587,
275
+ :domain => 'gmail.com',
276
+ :user_name => GMAIL_USERNAME
277
+ :password => GMAIL_PASSWORD
278
+ :authentication => 'plain',
279
+ :enable_starttls_auto => true}
280
+
281
+ Then before you job is run, SimpleWorker will establish the ActionMailer connection.
282
+
266
283
  Merging Gems
267
284
  ---------------------
268
285
 
@@ -280,6 +297,18 @@ This allows you to use any gem you'd like with SimpleWorker. This uses the same
280
297
 
281
298
  [Check here for more info on merge_gem](http://support.simpleworker.com/kb/working-with-simpleworker/merging-gems-into-your-worker).
282
299
 
300
+
301
+ Job Timeout
302
+ --------------
303
+
304
+ By default, each job has 60 minutes (3600 seconds to complete). If you know that your job should take less than that, you can specify a timeout explicitly:
305
+
306
+ worker.queue(:timeout=>1800)
307
+
308
+ This will kill your job if it is running more than 1800 seconds, or half an hour.
309
+
310
+
311
+
283
312
  Global Merging
284
313
  --------------
285
314
 
@@ -151,6 +151,7 @@ module SimpleWorker
151
151
  # puts 'run_local'
152
152
  set_auto_attributes
153
153
  init_database
154
+ init_mailer
154
155
  begin
155
156
  run
156
157
  rescue => ex
@@ -162,6 +163,14 @@ module SimpleWorker
162
163
  end
163
164
  end
164
165
 
166
+ def init_mailer
167
+ if SimpleWorker.config.mailer
168
+ require 'action_mailer'
169
+ ActionMailer::Base.raise_delivery_errors = true
170
+ ActionMailer::Base.smtp_settings = (SimpleWorker.config.mailer)
171
+ end
172
+ end
173
+
165
174
  def init_database
166
175
  if SimpleWorker.config.database
167
176
  require 'active_record'
@@ -18,6 +18,7 @@ module SimpleWorker
18
18
  :mailers,
19
19
  #:gems, # todo: move anything that uses this to merged_gems
20
20
  :database,
21
+ :mailer,
21
22
  :extra_requires,
22
23
  #:auto_merge,
23
24
  :server_gems,
@@ -70,6 +71,10 @@ module SimpleWorker
70
71
  else
71
72
  #puts 'NOT DOING ACTIVERECORD'
72
73
  end
74
+
75
+ if defined?(ActionMailer) && ActionMailer::Base.smtp_settings
76
+ c2.mailer = ActionMailer::Base.smtp_settings
77
+ end
73
78
  c2.merged_gems.merge!(get_required_gems) if defined?(Bundler)
74
79
  SimpleWorker.logger.debug "MODELS " + c2.models.inspect
75
80
  SimpleWorker.logger.debug "MAILERS " + c2.mailers.inspect
@@ -146,6 +151,7 @@ module SimpleWorker
146
151
  config_data['access_key'] = access_key
147
152
  config_data['secret_key'] = secret_key
148
153
  config_data['database'] = self.database if self.database
154
+ config_data['mailer'] = self.mailer if self.mailer
149
155
  config_data['global_attributes'] = self.global_attributes if self.global_attributes
150
156
  config_data['host'] = self.host if self.host
151
157
  config_data
@@ -12,6 +12,18 @@ def init_database_connection(sw_config)
12
12
  end
13
13
  end
14
14
 
15
+ def init_mailer(sw_config)
16
+ if sw_config
17
+ mailer_config = sw_config['mailer']
18
+ if mailer_config
19
+ require 'action_mailer'
20
+ ActionMailer::Base.raise_delivery_errors = true
21
+ ActionMailer::Base.smtp_settings = mailer_config
22
+ ActionMailer::Base.delivery_method = :smtp
23
+ end
24
+ end
25
+ end
26
+
15
27
  def get_class_to_run(class_name)
16
28
  runner_class = constantize(class_name)
17
29
  return runner_class
@@ -57,6 +69,10 @@ def init_worker_service_for_runner(job_data)
57
69
  if db_config
58
70
  config.database = db_config
59
71
  end
72
+ mailer_config = sw_config['mailer']
73
+ if mailer_config && config.respond_to?(:mailer)
74
+ config.mailer = mailer_config
75
+ end
60
76
  config.global_attributes = sw_config['global_attributes'] if sw_config['global_attributes']
61
77
  end
62
78
  end
@@ -69,8 +85,8 @@ job_data.merge!(run_data)
69
85
  puts 'job_data=' + job_data.inspect
70
86
 
71
87
  sw_config = job_data['sw_config']
72
- begin
73
88
  init_database_connection(sw_config)
89
+ init_mailer(sw_config)
74
90
  SimpleWorker.disable_queueing()
75
91
  runner_class = get_class_to_run(job_data['class_name'])
76
92
  SimpleWorker.running_class = runner_class
@@ -79,8 +95,4 @@ begin
79
95
  SimpleWorker.enable_queueing()
80
96
 
81
97
  # Let's run it!
82
- runner_return_data = runner.run
83
- rescue Exception => ex
84
- $stderr.puts "_error_from_sw_"
85
- raise ex
86
- end
98
+ runner_return_data = runner.run
@@ -122,10 +122,10 @@ module SimpleWorker
122
122
  #tmp_file = File.join(Dir.tmpdir(), File.basename(filename))
123
123
  tmp_file = File.join(Dir.tmpdir(), 'runner.rb')
124
124
  File.open(tmp_file, "w") do |f|
125
-
125
+ f.write("begin\n")#error handling block start
126
126
  f.write("
127
127
  # Find environment (-e)
128
- dirname = " "
128
+ dirname = ''
129
129
  i = 0
130
130
  job_data_file = run_data_file = nil
131
131
  puts \"args for single file=\" + ARGV.inspect
@@ -226,7 +226,12 @@ end
226
226
  f.write line
227
227
  end
228
228
  end
229
-
229
+ #error handling block - end
230
+ f.write("\nrescue Exception => ex
231
+ $stderr.puts '_error_from_sw_'
232
+ raise ex
233
+ end
234
+ ")
230
235
 
231
236
  end
232
237
  #puts 'funner.rb=' + tmp_file
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: simple_worker
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.10
5
+ version: 1.0.11
6
6
  platform: ruby
7
7
  authors:
8
8
  - Travis Reeder
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-09-15 00:00:00 Z
13
+ date: 2011-09-28 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: zip