From 613f4806842500236eb7b4e05b25c6762f2c6281 Mon Sep 17 00:00:00 2001 From: FrantiĊĦek Zatloukal Date: Aug 25 2020 16:22:31 +0000 Subject: Cache also orphan user page --- diff --git a/oraculum/controllers/main.py b/oraculum/controllers/main.py index 2195d1a..f638c7c 100644 --- a/oraculum/controllers/main.py +++ b/oraculum/controllers/main.py @@ -28,7 +28,7 @@ from oraculum.action_providers import ACTION_PROVIDERS from oraculum.controllers.landing_page import api_v1_landing_page from oraculum.controllers.libkarma import all_bodhi_updates -from oraculum.controllers.packager_dashboard import dashboard_user_data_static +from oraculum.controllers.packager_dashboard import dashboard_user_data_static, handle_orphan_user @app.before_first_request @@ -62,6 +62,7 @@ def register_cache_providers(): CACHE.register('packager-dashboard_bugs', dashboard.get_package_bugs) CACHE.register('packager-dashboard_pull_requests', dashboard.get_package_prs) CACHE.register('packager-dashboard_package_versions', dashboard.get_package_versions) + CACHE.register('packager-dashboard_orphan_page', handle_orphan_user) @app.route('/api/v1/releases') diff --git a/oraculum/controllers/packager_dashboard.py b/oraculum/controllers/packager_dashboard.py index bb4b412..b102e83 100644 --- a/oraculum/controllers/packager_dashboard.py +++ b/oraculum/controllers/packager_dashboard.py @@ -41,7 +41,7 @@ def handle_orphan_user(): static_info['orphans'] = dashboard.get_orphans(static_info['packages']) return { - 'static_info': {"data": static_info, 'status': 200, 'last_synced': CACHE.get_refreshed_time('orphans_json')}, + 'static_info': {"data": static_info, 'status': 200, 'last_synced': CACHE.get_refreshed_time('orphans_json').isoformat()}, 'prs': empty, 'bzs': empty, 'package_versions': empty @@ -51,7 +51,7 @@ def handle_orphan_user(): @app.route('/api/v1/packager_dashboard/', methods=['GET']) def route_dashboard_user_data(user): if user == 'orphan': - return jsonify(handle_orphan_user()) + return jsonify(CACHE.get('packager-dashboard_orphan_page')) packages_promise = CACHE.async_get('packager-dashboard_user_data_static', 'high', user) last_synced = CACHE.get_refreshed_time('packager-dashboard_user_data_static', user) if packages_promise == cache_utils.RefresherNotRegistered: diff --git a/oraculum/utils/celery_utils.py b/oraculum/utils/celery_utils.py index 05fdda7..86dc54b 100644 --- a/oraculum/utils/celery_utils.py +++ b/oraculum/utils/celery_utils.py @@ -104,6 +104,10 @@ def setup_periodic_tasks(sender, **kwargs): app.logger.debug("Adding periodic task %s every %s seconds" % (syncer, SYNC_INTERVALS[syncer])) sender.add_periodic_task(SYNC_INTERVALS[syncer], plan_celery_refresh.s('medium', syncer), priority=0) + # Let's cache also data for orphan page + app.logger.debug("Adding periodic task %s every %s seconds" % ("packager-dashboard_orphan_page", SYNC_INTERVALS["orphans_json"])) + sender.add_periodic_task(SYNC_INTERVALS["orphans_json"], plan_celery_refresh.s('medium', 'packager-dashboard_orphan_page'), priority=0) + # Packager Dashboard - Sync data for users who meet criteria for cached access to the site app.logger.debug("Adding periodic task packager_dashboard_user_data every %s seconds" % SYNC_INTERVALS["packager_dashboard_static_user_data"])