From 9e78e499b2416f5412c5ddcba840305821e70437 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Thu, 15 Dec 2016 12:20:00 -0800 Subject: [PATCH] Cascading new story fetches on front-end to prevent stampede. --- media/js/newsblur/views/dashboard_river.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/media/js/newsblur/views/dashboard_river.js b/media/js/newsblur/views/dashboard_river.js index 6afff9c0f..93660cc65 100644 --- a/media/js/newsblur/views/dashboard_river.js +++ b/media/js/newsblur/views/dashboard_river.js @@ -143,8 +143,15 @@ NEWSBLUR.Views.DashboardRiver = Backbone.View.extend({ } } - console.log(['Fetching dashboard story', story_hash]); - NEWSBLUR.assets.add_dashboard_story(story_hash); + var feed_id = story_hash.split(':')[0]; + var feed = NEWSBLUR.assets.get_feed(feed_id); + var subs = feed.get('num_subscribers'); + var delay = subs * 2; // 1,000 subs = 2 seconds + console.log(['Fetching dashboard story', story_hash, delay + 'ms delay']); + + _.delay(function() { + NEWSBLUR.assets.add_dashboard_story(story_hash); + }, Math.random() * delay); }