Don't forget to lycansubscribe

fixed some race conditions

Changed files
+8 -3
app
+1 -1
app/importers/posts_importer.rb
··· 33 @report&.update(queue: { length: @item_queue.length }) 34 end 35 rescue StandardError => e 36 - puts "Error in LikesImporter: #{record['uri']}: #{e}" 37 end 38 end 39
··· 33 @report&.update(queue: { length: @item_queue.length }) 34 end 35 rescue StandardError => e 36 + puts "Error in PostsImporter: #{record['uri']}: #{e}" 37 end 38 end 39
+5 -1
app/post_downloader.rb
··· 78 79 author = User.find_or_create_by!(did: did) 80 81 - Post.create( 82 user: author, 83 rkey: rkey, 84 time: Time.parse(created),
··· 78 79 author = User.find_or_create_by!(did: did) 80 81 + if post = Post.find_by(user: author, rkey: rkey) 82 + return post 83 + end 84 + 85 + Post.create!( 86 user: author, 87 rkey: rkey, 88 time: Time.parse(created),
+2 -1
app/reports/console_report.rb
··· 2 def initialize 3 @data = {} 4 @start = Time.now 5 end 6 7 def update(data) 8 - deep_merge(@data, data) 9 render 10 end 11
··· 2 def initialize 3 @data = {} 4 @start = Time.now 5 + @mutex = Mutex.new 6 end 7 8 def update(data) 9 + @mutex.synchronize { deep_merge(@data, data) } 10 render 11 end 12