From a1f1849392032036ac2996cb23dfc026110e4e96 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 5 Jul 2013 17:44:32 +1000 Subject: [PATCH] getting weird exceptions after handling one, work around --- lib/tasks/posts.rake | 57 ++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/lib/tasks/posts.rake b/lib/tasks/posts.rake index 29efc9fbdfe..7b4b1df4f8a 100644 --- a/lib/tasks/posts.rake +++ b/lib/tasks/posts.rake @@ -8,39 +8,40 @@ task 'posts:refresh_oneboxes' => :environment do rebake_posts invalidate_oneboxes: true end +def rebake_post(post,opts) + cooked = post.cook( + post.raw, + topic_id: post.topic_id, + invalidate_oneboxes: opts.fetch(:invalidate_oneboxes, false) + ) + + if cooked != post.cooked + Post.exec_sql( + 'update posts set cooked = ? where id = ?', cooked, post.id + ) + post.cooked = cooked + putc "#" + else + putc "." + end + + TopicLink.extract_from post + # make sure we trigger the post process + post.trigger_post_process +rescue => e + puts "\n\nFailed to bake topic_id #{post.topic_id} post_id #{post.id} #{e}\n#{e.backtrace.join("\n")} \n\n" +end + def rebake_posts(opts = {}) RailsMultisite::ConnectionManagement.each_connection do |db| puts "Re baking post markdown for #{db} , changes are denoted with # , no change with ." - total = Post.select([ + total = 0 + Post.select([ :id, :user_id, :cooked, :raw, :topic_id, :post_number - ]).inject(0) do |total, post| - begin - cooked = post.cook( - post.raw, - topic_id: post.topic_id, - invalidate_oneboxes: opts.fetch(:invalidate_oneboxes, false) - ) - - if cooked != post.cooked - Post.exec_sql( - 'update posts set cooked = ? where id = ?', cooked, post.id - ) - post.cooked = cooked - putc "#" - else - putc "." - end - - TopicLink.extract_from post - - # make sure we trigger the post process - post.trigger_post_process - - total += 1 - rescue => e - puts "\n\nFailed to bake topic_id #{post.topic_id} post_id #{post.id}\n#{e} #{e.backtrace.join("\n")} \n\n" - end + ]).each do |post| + rebake_post(post,opts) + total += 1 end puts "\n\n#{total} posts done!\n#{'-' * 50}\n"