Improve rake tasks
This commit is contained in:
		
					parent
					
						
							
								7d45a4e692
							
						
					
				
			
			
				commit
				
					
						35b6c4b36a
					
				
			
		
					 3 changed files with 27 additions and 21 deletions
				
			
		|  | @ -1,8 +0,0 @@ | |||
| namespace :feeds do | ||||
| 
 | ||||
|   desc "Removes all feeds from Redis, forcing a precompute on next request for each user" | ||||
|   task clear: :environment do | ||||
|     $redis.keys('feed:*').each { |key| $redis.del(key) } | ||||
|   end | ||||
| 
 | ||||
| end | ||||
							
								
								
									
										27
									
								
								lib/tasks/mastodon.rake
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								lib/tasks/mastodon.rake
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | |||
| namespace :mastodon do | ||||
|   namespace :media do | ||||
|     desc 'Removes media attachments that have not been assigned to any status for longer than a day' | ||||
|     task clear: :environment do | ||||
|       MediaAttachment.where(status_id: nil).where('created_at < ?', 1.day.ago).find_each do |m| | ||||
|         m.destroy | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   namespace :push do | ||||
|     desc 'Unsubscribes from PuSH updates of feeds nobody follows locally' | ||||
|     task clear: :environment do | ||||
|       Account.where('(select count(f.id) from follows as f where f.target_account_id = accounts.id) = 0').where.not(domain: nil).find_each do |a| | ||||
|         a.subscription('').unsubscribe | ||||
|         a.update!(verify_token: '', secret: '') | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   namespace :feeds do | ||||
|     desc 'Clears all timelines so that they would be regenerated on next hit' | ||||
|     task clear: :environment do | ||||
|       $redis.keys('feed:*').each { |key| $redis.del(key) } | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | @ -1,13 +0,0 @@ | |||
| namespace :subscriptions do | ||||
| 
 | ||||
|   desc "For all remote accounts that have no local followers, unsubscribe from PuSH" | ||||
|   task clear: :environment do | ||||
|     accounts = Account.where('(select count(f.id) from follows as f where f.target_account_id = accounts.id) = 0').where.not(domain: nil) | ||||
| 
 | ||||
|     accounts.each do |a| | ||||
|       a.subscription('').unsubscribe | ||||
|       a.update!(verify_token: '', secret: '') | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue