Commit c390551c2d91bf73bded7116075040d26ec8e5b1
1 parent
d97a67f0
Exists in
master
and in
1 other branch
add comments in various places and fix bug
bug was in looking for length < 1000 instead of batchsize
Showing
1 changed file
with
7 additions
and
2 deletions
Show diff stats
lib/tasks/prune_db.rake
@@ -26,6 +26,8 @@ namespace :prune_db do | @@ -26,6 +26,8 @@ namespace :prune_db do | ||
26 | end | 26 | end |
27 | end | 27 | end |
28 | 28 | ||
29 | + # There is a very similar task in the AOI code base as well. | ||
30 | + # Any core changes to this task should probably be reflected there. | ||
29 | desc "Converts all dates from PT to UTC" | 31 | desc "Converts all dates from PT to UTC" |
30 | task :convert_dates_to_utc, [:workerid, :workers] => [:environment] do|t,args| | 32 | task :convert_dates_to_utc, [:workerid, :workers] => [:environment] do|t,args| |
31 | args.with_defaults(:workerid => "0", :workers => "1") | 33 | args.with_defaults(:workerid => "0", :workers => "1") |
@@ -109,6 +111,9 @@ namespace :prune_db do | @@ -109,6 +111,9 @@ namespace :prune_db do | ||
109 | batch_size = 10000 | 111 | batch_size = 10000 |
110 | i = 0 | 112 | i = 0 |
111 | where = '' | 113 | where = '' |
114 | + # This is how we split the rows of a table between the various workers | ||
115 | + # so that they don't attempt to work on the same row as another worker. | ||
116 | + # The workerid is any number 0 through workers - 1. | ||
112 | if args[:workers] > "1" | 117 | if args[:workers] > "1" |
113 | where = "WHERE MOD(id, #{args[:workers]}) = #{args[:workerid]}" | 118 | where = "WHERE MOD(id, #{args[:workers]}) = #{args[:workerid]}" |
114 | end | 119 | end |
@@ -120,7 +125,7 @@ namespace :prune_db do | @@ -120,7 +125,7 @@ namespace :prune_db do | ||
120 | 125 | ||
121 | rows.each do |row| | 126 | rows.each do |row| |
122 | updated_values = {} | 127 | updated_values = {} |
123 | - # delete any value where the value is blank | 128 | + # delete any value where the value is blank (just for delayed_jobs) |
124 | row.delete_if {|key, value| value.blank? } | 129 | row.delete_if {|key, value| value.blank? } |
125 | row.each do |column, value| | 130 | row.each do |column, value| |
126 | next if column == "id" | 131 | next if column == "id" |
@@ -162,7 +167,7 @@ namespace :prune_db do | @@ -162,7 +167,7 @@ namespace :prune_db do | ||
162 | end | 167 | end |
163 | 168 | ||
164 | i+= 1 | 169 | i+= 1 |
165 | - break if rows.length < 1000 | 170 | + break if rows.length < batchsize |
166 | end | 171 | end |
167 | print "\n" | 172 | print "\n" |
168 | end | 173 | end |