Quindi ho dovuto andare in live senza aspettare che tutto il rebake finisse. Dopo essere andato in live non ho potuto eseguire il rebake perché avrebbe interrotto il server. Potevo eseguire il rebake sulla coda predefinita perché avrebbe ritardato tutti gli altri processi come le notifiche.
Quindi ho usato questo script per accodare tutti i task di rebake nella coda sidekiq a priorità ultrabassa. Lo condivido qui nel caso qualcun altro ne avesse bisogno.
# slow_rebake_resumer_ultralow.rb
# Riprende l'accodamento dei job di rebake da un punto specifico e li invia
# direttamente alla coda a priorità :ultra_low.
# esegui all'interno del container con - u003e rails runner slow_rebake_resumer_ultralow.rb
# --- Configurazione ---
BATCH_SIZE = 500
SLEEP_DURATION = 5
# --- Punto di partenza dal tuo ultimo aggiornamento ---
last_processed_id = 1952526
# --------------------
start_time = Time.now
total_posts = Post.count
puts "Ripristino e accodamento dei job di rebake per #{total_posts} post alla coda :ultra_low..."
puts "Inizio dopo il post ID #{last_processed_id}."
puts "---"
loop do
# Trova in modo efficiente il prossimo batch di post da elaborare
posts_to_enqueue = Post.where("id
Sono abbastanza sicuro che ci sia già un processo in esecuzione tutto il tempo che fa praticamente la stessa cosa e che sia menzionato dallo script di ripristino, ma forse hai eseguito la migrazione sul server live e non l’hai visto…
Sì, c’è. Non ho eseguito l’importazione dello script di migrazione standard. Pubblicherò di più al riguardo più tardi, una volta che gli utenti si saranno calmati dalle lamentele sullo scroll infinito e sull’esperienza utente disordinata in generale su Discourse. :faccina_sottosopra:
Ma in generale, potrebbe anche essere necessario un rebake completo come cambiare il dominio, fare alcune ricerche e sostituzioni, ecc.