Script per inviare il messaggio di benvenuto in background

ask.discourse.org produce un buon punto di partenza, come script Rails:

MAX_MESSAGES = 1000 # Limite opzionale per i test
SECONDS_BETWEEN_MESSAGES = 3 # Intervallo di 3 secondi

Rails.logger.info "Avvio dello script di messaggistica di massa..."

# Definisci il contenuto del tuo messaggio
message_title = "Benvenuto nella nostra community"
message_body = "Ciao! Siamo entusiasti di averti qui. Facci sapere se hai domande!"

# Recupera gli utenti ordinati per ultimo accesso
users = User.where(active: true)
            .where.not(staged: true) # Escludi gli utenti staged
            .order(last_seen_at: :desc)
            .limit(MAX_MESSAGES)

Rails.logger.info "Trovati #{users.count} utenti attivi a cui inviare messaggi."

users.each_with_index do |user, index|
  begin
    Rails.logger.info "In coda messaggio per #{user.username} (#{index + 1}/#{users.count})..."

    PostCreator.create!(
      Discourse.system_user,
      title: message_title,
      raw: message_body,
      archetype: Archetype.private_message,
      target_usernames: user.username,
      skip_validations: true
    )

    Rails.logger.info "Messaggio accodato con successo per #{user.username}."

    # Attendi l'intervallo specificato prima di elaborare il prossimo utente
    sleep(SECONDS_BETWEEN_MESSAGES)
  rescue => e
    Rails.logger.error "Impossibile inviare messaggio a #{user.username}: #{e.message}"
  end
end

Rails.logger.info "Script di messaggistica di massa completato!"

Non ho apportato alcuna modifica e l’utente system ha inviato il MP a tutti i miei utenti nella mia istanza di test:


Quanti utenti hai?