wait for replication before discussion materialized view
Change-Id: I5af02c5e5a99c6bb40480352aeb857031d7ead84 Reviewed-on: https://gerrit.instructure.com/138106 Reviewed-by: Mysti Sadler <mysti@instructure.com> Tested-by: Jenkins Reviewed-by: Cody Cutrer <cody@instructure.com> Product-Review: James Williams <jamesw@instructure.com> QA-Review: James Williams <jamesw@instructure.com>
This commit is contained in:
parent
920d30a2bb
commit
8e573f1ed7
|
@ -321,7 +321,7 @@ class DiscussionTopic < ActiveRecord::Base
|
|||
|
||||
def update_materialized_view
|
||||
# kick off building of the view
|
||||
DiscussionTopic::MaterializedView.for(self).update_materialized_view
|
||||
DiscussionTopic::MaterializedView.for(self).update_materialized_view(xlog_location: self.class.current_xlog_location)
|
||||
end
|
||||
|
||||
def group_category_deleted_with_entries?
|
||||
|
@ -1424,6 +1424,6 @@ class DiscussionTopic < ActiveRecord::Base
|
|||
|
||||
# synchronously create/update the materialized view
|
||||
def create_materialized_view
|
||||
DiscussionTopic::MaterializedView.for(self).update_materialized_view_without_send_later
|
||||
DiscussionTopic::MaterializedView.for(self).update_materialized_view_without_send_later(xlog_location: self.class.current_xlog_location)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -77,7 +77,7 @@ class DiscussionTopic::MaterializedView < ActiveRecord::Base
|
|||
# that have been created or updated since the view was generated.
|
||||
def materialized_view_json(opts = {})
|
||||
if !up_to_date?
|
||||
update_materialized_view
|
||||
update_materialized_view(xlog_location: self.class.current_xlog_location)
|
||||
end
|
||||
|
||||
if json_structure.present?
|
||||
|
@ -101,7 +101,8 @@ class DiscussionTopic::MaterializedView < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def update_materialized_view
|
||||
def update_materialized_view(xlog_location: nil)
|
||||
self.class.wait_for_replication(start: xlog_location)
|
||||
self.generation_started_at = Time.zone.now
|
||||
view_json, user_ids, entry_lookup =
|
||||
self.build_materialized_view
|
||||
|
@ -112,8 +113,7 @@ class DiscussionTopic::MaterializedView < ActiveRecord::Base
|
|||
end
|
||||
|
||||
handle_asynchronously :update_materialized_view,
|
||||
:singleton => proc { |o| "materialized_discussion:#{ Shard.birth.activate { o.discussion_topic_id } }" },
|
||||
:run_at => proc { 10.seconds.from_now } # delay for replication to slave
|
||||
:singleton => proc { |o| "materialized_discussion:#{ Shard.birth.activate { o.discussion_topic_id } }" }
|
||||
|
||||
def build_materialized_view
|
||||
entry_lookup = {}
|
||||
|
|
Loading…
Reference in New Issue