Lists redis clean-up (#5886)
* When list is deleted, remove feed from redis * Clean up list feeds of inactive users
This commit is contained in:
		
							parent
							
								
									e20895f251
								
							
						
					
					
						commit
						d68868ca14
					
				
					 2 changed files with 49 additions and 10 deletions
				
			
		|  | @ -19,4 +19,23 @@ class List < ApplicationRecord | |||
|   has_many :accounts, through: :list_accounts | ||||
| 
 | ||||
|   validates :title, presence: true | ||||
| 
 | ||||
|   before_destroy :clean_feed_manager | ||||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def clean_feed_manager | ||||
|     reblog_key       = FeedManager.instance.key(:list, id, 'reblogs') | ||||
|     reblogged_id_set = Redis.current.zrange(reblog_key, 0, -1) | ||||
| 
 | ||||
|     Redis.current.pipelined do | ||||
|       Redis.current.del(FeedManager.instance.key(:list, id)) | ||||
|       Redis.current.del(reblog_key) | ||||
| 
 | ||||
|       reblogged_id_set.each do |reblogged_id| | ||||
|         reblog_set_key = FeedManager.instance.key(:list, id, "reblogs:#{reblogged_id}") | ||||
|         Redis.current.del(reblog_set_key) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Reference in a new issue