caboose-rets 0.0.47 → 0.0.48
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YzhkZmYzZTRlOTVlYTVmZmM4M2Y0ZmY5YWQzNzE1YzAzYmQ0N2NkOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ODM3ZmU5ZjRlZmUwNTNkMzQzZTE2NjJhNWFlYzA1MWYzOGQwOWMxNA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
N2E1ZDQyZTA0NzI1YzA3OTUyNjcyYWFkMjhjNTNjYTEyZjQ2MzFkMTAzNTRl
|
10
|
+
NTQ2MTM3ZGRkNTU4MGI2YTU3ODk4NGE0ZDQ2YmExZWEwMWZhYjE5YmNiZjMy
|
11
|
+
Yzc5NjYzMzE5OTM2NDc5OWFjY2FiMDAzMjcwODc5MjBkNzlmZjI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZWM3NmEyNDliYmJiZmUzYzIwODU1OWZlNDQ1NjMyMWU1NDc4NGExZTQ4NDVm
|
14
|
+
NDIzNDM5MDQ1MjYwMTY1ODgwMTEzNmM5YjJlNDZlZTk3ZjllY2ZlOTgwOTg4
|
15
|
+
Zjg0Mjc0YTNiM2ZiY2JjMDI4MGQ5NzlhMGI5OTRmYTkwMjY2YmI=
|
@@ -24,6 +24,32 @@ class CabooseRets::ResidentialProperty < ActiveRecord::Base
|
|
24
24
|
CabooseRets::RetsImporter.import_property(mls_acct)
|
25
25
|
end
|
26
26
|
|
27
|
+
#=============================================================================
|
28
|
+
|
29
|
+
# Assume this is running in a worker dyno
|
30
|
+
def self.update_rets
|
31
|
+
|
32
|
+
cri = CabooseRets::RetsImporter
|
33
|
+
|
34
|
+
return if cri.task_is_locked
|
35
|
+
task_started = cri.lock_task
|
36
|
+
|
37
|
+
begin
|
38
|
+
cri.update_after(cri.last_updated)
|
39
|
+
cri.save_last_updated(task_started)
|
40
|
+
cri.unlock_task
|
41
|
+
rescue
|
42
|
+
raise
|
43
|
+
ensure
|
44
|
+
cri.unlock_task_if_last_updated(task_started)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Start the same update process in five minutes
|
48
|
+
self.delay(:run_at => 5.minutes.from_now).update_rets
|
49
|
+
end
|
50
|
+
|
51
|
+
#=============================================================================
|
52
|
+
|
27
53
|
def parse(data)
|
28
54
|
self.bedrooms = data['BEDROOMS']
|
29
55
|
self.dom = data['DOM']
|
@@ -471,4 +471,42 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
471
471
|
#puts "[rets_importer] #{msg}"
|
472
472
|
Rails.logger.info("[rets_importer] #{msg}")
|
473
473
|
end
|
474
|
+
|
475
|
+
#=============================================================================
|
476
|
+
# Locking update task
|
477
|
+
#=============================================================================
|
478
|
+
|
479
|
+
def self.last_updated
|
480
|
+
if !Caboose::Setting.exists?(:name => 'rets_last_updated')
|
481
|
+
Caboose::Setting.create(:name => 'rets_last_updated', :value => '2013-08-06T00:00:01')
|
482
|
+
end
|
483
|
+
s = Caboose::Setting.where(:name => 'rets_last_updated').first
|
484
|
+
return DateTime.parse(s.value)
|
485
|
+
end
|
486
|
+
|
487
|
+
def self.save_last_updated(d)
|
488
|
+
s = Caboose::Setting.where(:name => 'rets_last_updated').first
|
489
|
+
s.value = d.strftime('%FT%T')
|
490
|
+
s.save
|
491
|
+
end
|
492
|
+
|
493
|
+
def self.task_is_locked
|
494
|
+
return Caboose::Setting.exists?(:name => 'rets_update_running')
|
495
|
+
end
|
496
|
+
|
497
|
+
def self.lock_task
|
498
|
+
date = DateTime.now
|
499
|
+
Caboose::Setting.create(:name => 'rets_update_running', :value => date.strftime('%F %T'))
|
500
|
+
return date
|
501
|
+
end
|
502
|
+
|
503
|
+
def self.unlock_task
|
504
|
+
Caboose::Setting.where(:name => 'rets_update_running').first.destroy
|
505
|
+
end
|
506
|
+
|
507
|
+
def self.unlock_task_if_last_updated(d)
|
508
|
+
setting = Caboose::Setting.where(:name => 'rets_update_running').first
|
509
|
+
unlock_task if setting && d.strftime('%F %T') == setting.value
|
510
|
+
end
|
511
|
+
|
474
512
|
end
|
data/lib/caboose_rets/version.rb
CHANGED