2009-08-04 17 views
5

Mi chiedevo se qualcuno fosse a conoscenza di un modo in cui è possibile gestire la larghezza di banda all'interno di un'applicazione di rotaie in un modo che non dipende dal server web. Ad esempio, ogni account ha un limite di larghezza di banda. Il traffico in entrata e in uscita viene sottratto dall'indennità mensile?gestione della larghezza di banda con le rotaie?

+0

Suppongo che questo sarà correlato all'analisi dei file di registro, sembra che Splunk potrebbe farlo con certezza, ma ho bisogno di qualcosa con un budget. Forse la gemma dell'Analog File Log di produzione? – bwizzy

risposta

4

Una possibilità potrebbe essere quella di aggiungere un after_filter a application.rb (in modo che essa si applica a tutte le azioni) e procedere come segue:

def store_bandwidth_usage 
    response_size = response.body.size 
    # Assuming the User model has a bandwidth_usage attribute 
    @current_user.increment!(:bandwidth_usage, response_size) 
end 

Naturalmente allora si avrebbe bisogno di un before_filter che ha verificato che un utente non erano andati oltre la larghezza di banda loro assegnata, altrimenti dovevano essergli negato l'accesso.

Ricordare che questo verrà conteggiato solo per le richieste che colpiscono il server di rotaie, eventuali richieste che vengono riempite da un server front-end (ad esempio immagini) non saranno incluse.

Problemi correlati