* Feature 🚀 : Ability to delete messages in chat channels - Sending message ID to frontend - Deleting Message - Use pusher to delete message realtime * Minor Bug 🐞: Show message action only for current user - User can delete or edit their own messages * Test cases added * Bug 🐞: Update message id for receiver Message id was not sent to receiver by pusher * Refactoring🛠: Message controller refactoring * Test Cases📝 : Specs for Delete message added * Feature 🚀 : Ability to edit messages * Test Cases📝 : Specs for Edit message added * Merge conflict resolved * UI completed for Create Channel * API for create channel & invitations * 🚀 Combining Backend and Frontend * Test cases added * UI completed for Create Channel * API for create channel & invitations * 🚀 Combining Backend and Frontend * Test cases added * fix suggestions * add test cases * replace mod_relations_admin to tag_moderator * fix test cases * refactor and fix code climate issues * Update app/controllers/chat_channel_memberships_controller.rb Co-authored-by: Michael Kohl <me@citizen428.net> * fix suggestions * renaming the methods * Update app/javascript/chat/chat.jsx Co-authored-by: Nick Taylor <nick@iamdeveloper.com> * Update app/javascript/chat/components/createChatModal.jsx Co-authored-by: Nick Taylor <nick@iamdeveloper.com> * add jsDoc and add validation * add PR suggestions * renmae the file name to PascalCase * add styled component * refactor channel button component * fix specs * fix code smell issues * fix file name issue * handle error message * add jsDoc * Update app/controllers/chat_channels_controller.rb Co-authored-by: Michael Kohl <me@citizen428.net> * refactor chat_channel_helpers * update old hash to new hash * Update app/javascript/chat/components/ChannelButton.jsx Co-authored-by: Nick Taylor <nick@iamdeveloper.com> * Update app/views/chat_channels/index.html.erb Co-authored-by: Michael Kohl <me@citizen428.net> * fix syntax error * Update app/views/chat_channels/index.html.erb Co-authored-by: Nick Taylor <nick@iamdeveloper.com> * Policies changed * The Disable Button issue 🐞 * Fixing Disabled button Issue 🐞 * New group doesn't show up 🐞 Co-authored-by: Narender Singh <narender2031@gmail.com> Co-authored-by: Michael Kohl <me@citizen428.net> Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
28 lines
1.4 KiB
Ruby
28 lines
1.4 KiB
Ruby
module DataUpdateScripts
|
|
class GradualArticleCacheBust
|
|
def run
|
|
# This script is designed to bust the cache on article pages sufficient such that significant changes to
|
|
# CSS will not create meaningful visual regressions for most users.
|
|
# All articles have their caches naturally recycle once per day to finalize the transition.
|
|
|
|
# This uses exponential backoff in order to bust the caches of more recent articles first, but not
|
|
# bust everything in too short a period, so that the edge cache can gradually re-heat without everything
|
|
# going cold at once. Articles with high "hotness score" (e.g. more recent) are the ones most in need of busting.
|
|
|
|
# It only busts the "?i=i" variant of the path which is the "internal nav" version, aka the page when swapped
|
|
# with internal navigation, not the one landed on directly (which wouldn't have cache mismatches)
|
|
relation = Article.published.order(hotness_score: :desc).select(:path)
|
|
|
|
relation.limit(1500).each_with_index do |article, index|
|
|
n = index + 300 # + 300 gives the server time to boot up
|
|
BustCachePathWorker.set(queue: :high_priority).perform_in(n.seconds, "#{article.path}?i=i")
|
|
end
|
|
|
|
relation.offset(1500).limit(3000).each_with_index do |article, index|
|
|
|
|
n = (index * 3) + 450
|
|
BustCachePathWorker.set(queue: :medium_priority).perform_in(n.seconds, "#{article.path}?i=i")
|
|
end
|
|
end
|
|
end
|
|
end
|