Added autoretry_read decorator to methods which use mongo cursor.

PLAT-71
This commit is contained in:
Usman Khalid
2014-10-27 17:49:45 +05:00
parent 328a79cc60
commit 4a969f9f1b
2 changed files with 7 additions and 0 deletions

View File

@@ -526,6 +526,7 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase, Mongo
connection.drop_database(self.collection.database.proxied_object)
connection.close()
@autoretry_read()
def fill_in_run(self, course_key):
"""
In mongo some course_keys are used without runs. This helper function returns
@@ -699,6 +700,7 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase, Mongo
item['location'] = item['_id']
del item['_id']
@autoretry_read()
def _query_children_for_cache_children(self, course_key, items):
"""
Generate a pymongo in query for finding the items and return the payloads
@@ -803,6 +805,7 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase, Mongo
for item in items
]
@autoretry_read()
def get_courses(self, **kwargs):
'''
Returns a list of course descriptors.
@@ -934,6 +937,7 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase, Mongo
for key in ('tag', 'org', 'course', 'category', 'name', 'revision')
])
@autoretry_read()
def get_items(
self,
course_id,

View File

@@ -72,6 +72,7 @@ from xmodule.modulestore.exceptions import InsufficientSpecificationError, Versi
from xmodule.modulestore import (
inheritance, ModuleStoreWriteBase, ModuleStoreEnum, BulkOpsRecord, BulkOperationsMixin
)
from xmodule.modulestore.mongodb_proxy import autoretry_read
from ..exceptions import ItemNotFoundError
from .caching_descriptor_system import CachingDescriptorSystem
@@ -775,6 +776,7 @@ class SplitMongoModuleStore(SplitBulkWriteMixin, ModuleStoreWriteBase):
# add it in the envelope for the structure.
return CourseEnvelope(course_key.replace(version_guid=version_guid), entry)
@autoretry_read()
def get_courses(self, branch, **kwargs):
'''
Returns a list of course descriptors matching any given qualifiers.
@@ -2631,6 +2633,7 @@ class SplitMongoModuleStore(SplitBulkWriteMixin, ModuleStoreWriteBase):
"""
structure['blocks'][block_key] = content
@autoretry_read()
def find_courses_by_search_target(self, field_name, field_value):
"""
Find all the courses which cached that they have the given field with the given value.