mobilize-base 1.366 → 1.367

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