Skip to content

Commit d55b024

Browse files
committed
Move static media syncing to a broadcast
1 parent 4120c38 commit d55b024

File tree

4 files changed

+9
-11
lines changed

4 files changed

+9
-11
lines changed

readthedocs/core/management/commands/set_metadata.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from readthedocs.projects import tasks
99
from readthedocs.projects.models import Project
10+
from readthedocs.core.utils import broadcast
1011

1112
log = logging.getLogger(__name__)
1213

@@ -20,6 +21,6 @@ def handle(self, *args, **options):
2021
for p in queryset:
2122
log.info("Generating metadata for %s", p)
2223
try:
23-
tasks.update_static_metadata(p.pk)
24+
broadcast(type='app', task=tasks.update_static_metadata, args=[p.pk])
2425
except Exception:
2526
log.error('Build failed for %s', p, exc_info=True)

readthedocs/projects/models.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from readthedocs.projects import constants
2626
from readthedocs.projects.exceptions import ProjectImportError
2727
from readthedocs.projects.templatetags.projects_tags import sort_version_aware
28-
from readthedocs.projects.utils import make_api_version, update_static_metadata
28+
from readthedocs.projects.utils import make_api_version
2929
from readthedocs.projects.version_handling import determine_stable_version
3030
from readthedocs.projects.version_handling import version_windows
3131
from readthedocs.core.resolver import resolve, resolve_domain
@@ -330,7 +330,8 @@ def save(self, *args, **kwargs): # pylint: disable=arguments-differ
330330
except Exception:
331331
log.error('failed to symlink project', exc_info=True)
332332
try:
333-
update_static_metadata(project_pk=self.pk)
333+
if not first_save:
334+
broadcast(type='app', task=tasks.update_static_metadata, args=[self.pk])
334335
except Exception:
335336
log.error('failed to update static metadata', exc_info=True)
336337
try:

readthedocs/projects/tasks.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,7 @@ def finish_build(version_pk, build_pk, hostname=None, html=False,
558558
if not epub:
559559
clear_epub_artifacts(version)
560560

561+
# Sync files to the web servers
561562
broadcast(type='app', task=move_files, args=[version_pk, hostname],
562563
kwargs=dict(
563564
html=html,
@@ -570,8 +571,10 @@ def finish_build(version_pk, build_pk, hostname=None, html=False,
570571
# Symlink project on every web
571572
broadcast(type='app', task=symlink_project, args=[version.project.pk])
572573

574+
# Update metadata
575+
broadcast(type='app', task=update_static_metadata, args=[version.project.pk])
576+
573577
# Delayed tasks
574-
update_static_metadata.delay(version.project.pk)
575578
fileify.delay(version.pk, commit=build.commit)
576579
update_search.delay(version.pk, commit=build.commit)
577580

@@ -885,7 +888,6 @@ def update_static_metadata(project_pk, path=None):
885888
fh = open(path, 'w+')
886889
json.dump(metadata, fh)
887890
fh.close()
888-
Syncer.copy(path, path, host=socket.gethostname(), is_file=True)
889891
except (AttributeError, IOError) as e:
890892
log.debug(LOG_TEMPLATE.format(
891893
project=project.slug,

readthedocs/projects/utils.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,6 @@ def version_from_slug(slug, version):
2929
return v
3030

3131

32-
def update_static_metadata(project_pk):
33-
"""This is here to avoid circular imports in models.py"""
34-
from readthedocs.projects import tasks
35-
tasks.update_static_metadata.delay(project_pk)
36-
37-
3832
def find_file(filename):
3933
"""Recursively find matching file from the current working path
4034

0 commit comments

Comments
 (0)