v0.48.1 Further attempts to address MariaDB challenges and make things as foolproof as possible.
This commit is contained in:
parent
395b2e9c49
commit
87f2733dbd
@ -1,8 +1,9 @@
|
||||
# Federated Computer, Inc.
|
||||
# David Sainty <saint@federated.computer> 2024 A.D.
|
||||
# Gossamer Threads to Discourse -- CleanUp Script
|
||||
# v0.14 Fix for Prod-Bitnami. Prep for 20240816 run.
|
||||
# v0.16 Add parallel deletion of posts.
|
||||
|
||||
require 'concurrent-ruby'
|
||||
require File.expand_path("../../../../config/environment", __FILE__)
|
||||
|
||||
class GossamerForumsCleaner
|
||||
@ -58,6 +59,30 @@ class GossamerForumsCleaner
|
||||
end
|
||||
end
|
||||
|
||||
def cleanup_posts_parallel
|
||||
puts "Cleaning up imported posts..."
|
||||
|
||||
# Define the number of threads to use
|
||||
num_threads = 8
|
||||
pool = Concurrent::FixedThreadPool.new(num_threads)
|
||||
|
||||
PostCustomField.where(name: 'original_gossamer_id').in_batches(of: 1000) do |batch|
|
||||
batch.each do |field|
|
||||
pool.post do
|
||||
post = Post.find_by(id: field.post_id)
|
||||
if post
|
||||
puts "Deleting post #{post.id} (ID: #{post.id})"
|
||||
post.destroy
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Wait for all threads to complete
|
||||
pool.shutdown
|
||||
pool.wait_for_termination
|
||||
end
|
||||
|
||||
def cleanup_messages
|
||||
puts "Cleaning up imported personal messages..."
|
||||
# Find all personal messages (inbox) that were imported and delete them
|
||||
@ -78,7 +103,7 @@ class GossamerForumsCleaner
|
||||
puts "Cleanup beginning!"
|
||||
# cleanup_messages
|
||||
cleanup_topics
|
||||
cleanup_posts
|
||||
cleanup_posts_parallel
|
||||
# cleanup_categories
|
||||
# cleanup_users
|
||||
puts "Cleanup complete!"
|
||||
|
Loading…
Reference in New Issue
Block a user