mobilize-base 1.366 → 1.367

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.
@@ -74,6 +74,11 @@ module Mobilize
74
74
 
75
75
  def is_due?
76
76
  r = self.reload
77
+ u = r.user
78
+ #make sure we're on the right server
79
+ resque_server = u.resque_server
80
+ current_server = begin;Socket.gethostbyname(Socket.gethostname);rescue;nil;end
81
+ return false unless ['127.0.0.1',current_server].include?(resque_server)
77
82
  return false if r.is_working?
78
83
  prev_due_time = Time.now.utc - Jobtracker.runner_read_freq
79
84
  return true if r.started_at.nil? or r.started_at < prev_due_time
@@ -117,6 +117,8 @@ module Mobilize
117
117
  begin
118
118
  err_sheet_name = "#{j.name}_stage#{s.idx.to_s}.err"
119
119
  err_sheet_path = (r.path.split("/")[0..-2] + [err_sheet_name]).join("/")
120
+ #get a slot, any slot
121
+ gdrive_slot = Gdrive.worker_emails.sort_by{rand}.first
120
122
  err_sheet = Gsheet.find_by_path(err_sheet_path,gdrive_slot)
121
123
  err_sheet.delete if err_sheet
122
124
  rescue
@@ -28,6 +28,26 @@ module Mobilize
28
28
  return u.runner.jobs
29
29
  end
30
30
 
31
+ #identifies the server which should process this user's jobs
32
+ #determined by available servers in config/deploy/<env>
33
+ #otherwise, localhost
34
+ def resque_server
35
+ u = self
36
+ deploy_file_path = "#{Base.root}/config/deploy/#{Base.env}.rb"
37
+ result = begin
38
+ server_line = File.readlines(deploy_file_path).select{|l| l.strip.starts_with?("role ")}.first
39
+ #reject arguments that start w symbols
40
+ server_strings = server_line.split(",")[1..-1].reject{|t| t.strip.starts_with?(":")}
41
+ servers = server_strings.map{|ss| ss.gsub("'","").gsub('"','').strip}
42
+ server_i = u.name.to_md5.gsub(/[^0-9]/,'').to_i % servers.length
43
+ servers[server_i]
44
+ rescue
45
+ #default to self if this doesn't work
46
+ "127.0.0.1"
47
+ end
48
+ result
49
+ end
50
+
31
51
  def runner_path
32
52
  u = self
33
53
  prefix = "Runner_"
@@ -1,5 +1,5 @@
1
1
  module Mobilize
2
2
  module Base
3
- VERSION = "1.366"
3
+ VERSION = "1.367"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobilize-base
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.366'
4
+ version: '1.367'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-28 00:00:00.000000000 Z
12
+ date: 2013-07-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -234,7 +234,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
234
  version: '0'
235
235
  segments:
236
236
  - 0
237
- hash: 2855481328417912899
237
+ hash: -1055374089226595286
238
238
  required_rubygems_version: !ruby/object:Gem::Requirement
239
239
  none: false
240
240
  requirements:
@@ -243,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
243
  version: '0'
244
244
  segments:
245
245
  - 0
246
- hash: 2855481328417912899
246
+ hash: -1055374089226595286
247
247
  requirements: []
248
248
  rubyforge_project: mobilize-base
249
249
  rubygems_version: 1.8.25