Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
course-discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
course-discovery
Commits
ace7f3b2
Commit
ace7f3b2
authored
Sep 12, 2016
by
Renzo Lucioni
Committed by
GitHub
Sep 12, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #312 from edx/renzo/threading-cleanup
Remove unnecessary comments and make method names more verbose
parents
0898292c
1dad549f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
12 deletions
+9
-12
course_discovery/apps/course_metadata/data_loaders/api.py
+9
-12
No files found.
course_discovery/apps/course_metadata/data_loaders/api.py
View file @
ace7f3b2
...
@@ -65,13 +65,13 @@ class CoursesApiDataLoader(AbstractDataLoader):
...
@@ -65,13 +65,13 @@ class CoursesApiDataLoader(AbstractDataLoader):
logger
.
info
(
'Refreshing Courses and CourseRuns from
%
s...'
,
self
.
partner
.
courses_api_url
)
logger
.
info
(
'Refreshing Courses and CourseRuns from
%
s...'
,
self
.
partner
.
courses_api_url
)
initial_page
=
1
initial_page
=
1
response
=
self
.
_request
(
initial_page
)
response
=
self
.
_
make_
request
(
initial_page
)
count
=
response
[
'pagination'
][
'count'
]
count
=
response
[
'pagination'
][
'count'
]
pages
=
response
[
'pagination'
][
'num_pages'
]
pages
=
response
[
'pagination'
][
'num_pages'
]
self
.
_process_response
(
response
)
self
.
_process_response
(
response
)
with
concurrent
.
futures
.
ThreadPoolExecutor
(
max_workers
=
self
.
max_workers
)
as
executor
:
with
concurrent
.
futures
.
ThreadPoolExecutor
(
max_workers
=
self
.
max_workers
)
as
executor
:
futures
=
[
executor
.
submit
(
self
.
_request
,
page
)
for
page
in
range
(
initial_page
+
1
,
pages
+
1
)]
futures
=
[
executor
.
submit
(
self
.
_
make_
request
,
page
)
for
page
in
range
(
initial_page
+
1
,
pages
+
1
)]
for
future
in
futures
:
# pragma: no cover
for
future
in
futures
:
# pragma: no cover
response
=
future
.
result
()
response
=
future
.
result
()
...
@@ -81,12 +81,10 @@ class CoursesApiDataLoader(AbstractDataLoader):
...
@@ -81,12 +81,10 @@ class CoursesApiDataLoader(AbstractDataLoader):
self
.
delete_orphans
()
self
.
delete_orphans
()
def
_request
(
self
,
page
):
def
_make_request
(
self
,
page
):
"""Make a request."""
return
self
.
api_client
.
courses
()
.
get
(
page
=
page
,
page_size
=
self
.
PAGE_SIZE
)
return
self
.
api_client
.
courses
()
.
get
(
page
=
page
,
page_size
=
self
.
PAGE_SIZE
)
def
_process_response
(
self
,
response
):
def
_process_response
(
self
,
response
):
"""Process a response."""
results
=
response
[
'results'
]
results
=
response
[
'results'
]
logger
.
info
(
'Retrieved
%
d course runs...'
,
len
(
results
))
logger
.
info
(
'Retrieved
%
d course runs...'
,
len
(
results
))
...
@@ -181,13 +179,14 @@ class EcommerceApiDataLoader(AbstractDataLoader):
...
@@ -181,13 +179,14 @@ class EcommerceApiDataLoader(AbstractDataLoader):
def
ingest
(
self
):
def
ingest
(
self
):
logger
.
info
(
'Refreshing course seats from
%
s...'
,
self
.
partner
.
ecommerce_api_url
)
logger
.
info
(
'Refreshing course seats from
%
s...'
,
self
.
partner
.
ecommerce_api_url
)
response
=
self
.
_request
(
1
)
initial_page
=
1
response
=
self
.
_make_request
(
initial_page
)
count
=
response
[
'count'
]
count
=
response
[
'count'
]
pages
=
math
.
ceil
(
count
/
self
.
PAGE_SIZE
)
pages
=
math
.
ceil
(
count
/
self
.
PAGE_SIZE
)
self
.
_process_response
(
response
)
self
.
_process_response
(
response
)
with
concurrent
.
futures
.
ThreadPoolExecutor
(
max_workers
=
self
.
max_workers
)
as
executor
:
with
concurrent
.
futures
.
ThreadPoolExecutor
(
max_workers
=
self
.
max_workers
)
as
executor
:
futures
=
[
executor
.
submit
(
self
.
_
request
,
page
)
for
page
in
range
(
2
,
pages
+
1
)]
futures
=
[
executor
.
submit
(
self
.
_
make_request
,
page
)
for
page
in
range
(
initial_page
+
1
,
pages
+
1
)]
for
future
in
futures
:
# pragma: no cover
for
future
in
futures
:
# pragma: no cover
response
=
future
.
result
()
response
=
future
.
result
()
...
@@ -197,12 +196,10 @@ class EcommerceApiDataLoader(AbstractDataLoader):
...
@@ -197,12 +196,10 @@ class EcommerceApiDataLoader(AbstractDataLoader):
self
.
delete_orphans
()
self
.
delete_orphans
()
def
_request
(
self
,
page
):
def
_make_request
(
self
,
page
):
"""Make a request."""
return
self
.
api_client
.
courses
()
.
get
(
page
=
page
,
page_size
=
self
.
PAGE_SIZE
,
include_products
=
True
)
return
self
.
api_client
.
courses
()
.
get
(
page
=
page
,
page_size
=
self
.
PAGE_SIZE
,
include_products
=
True
)
def
_process_response
(
self
,
response
):
def
_process_response
(
self
,
response
):
"""Process a response."""
results
=
response
[
'results'
]
results
=
response
[
'results'
]
logger
.
info
(
'Retrieved
%
d course seats...'
,
len
(
results
))
logger
.
info
(
'Retrieved
%
d course seats...'
,
len
(
results
))
...
@@ -271,8 +268,8 @@ class ProgramsApiDataLoader(AbstractDataLoader):
...
@@ -271,8 +268,8 @@ class ProgramsApiDataLoader(AbstractDataLoader):
image_height
=
480
image_height
=
480
XSERIES
=
None
XSERIES
=
None
def
__init__
(
self
,
partner
,
api_url
,
access_token
=
None
,
token_type
=
None
):
def
__init__
(
self
,
partner
,
api_url
,
access_token
=
None
,
token_type
=
None
,
max_workers
=
None
):
super
(
ProgramsApiDataLoader
,
self
)
.
__init__
(
partner
,
api_url
,
access_token
,
token_type
)
super
(
ProgramsApiDataLoader
,
self
)
.
__init__
(
partner
,
api_url
,
access_token
,
token_type
,
max_workers
)
self
.
XSERIES
=
ProgramType
.
objects
.
get
(
name
=
'XSeries'
)
self
.
XSERIES
=
ProgramType
.
objects
.
get
(
name
=
'XSeries'
)
def
ingest
(
self
):
def
ingest
(
self
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment