2009-03-30 10 views
5

Moja aplikacja Rails musi przetworzyć i wygenerować pliki PDF XFA i wysłać do użytkownika/przeglądarki. Działa dobrze. Problem polega jednak na tym, że przed wysłaniem pliku do użytkownika tworzy on 2 pliki w katalogu tmp rails.Jak automatycznie usunąć pliki tymczasowe w ruby-rails?

Jeśli 10 zapytań przyjdzie do pdf_controller, liczba plików tymczasowych w katalogu tmp podwoi się i pochłonie to miejsce.

Po przeszukaniu pomyślałem, że Zamiar przyjdzie na ratunek. Ale nie ma zbyt wiele wiedzy na temat Sweeper.

Czy ktoś może sugerować, którą drogę wybrać?

Odpowiedz

1

Można użyć zadania cron, które usuwa pliki co n minut, lub można zamówić usunięcie z samego kontrolera.

+1

Cron może nie być dobrym rozwiązaniem. Kiedy użytkownik jest pokazywany z plikiem PDF tworzonym tempfile i jeśli nie przesyła formularza PDF na jakiś czas i jeśli ten cron zostanie zwolniony i usunie plik tymczasowy, a później, gdy użytkownik prześle formularz PDF, system straci ważność/nieważny. – Autodidact

5

Tempfile usunie pliki po sfinalizowaniu obiektu.

Tempfile on Rdoc

Przykład:

def get_pdf 
    model = Model.find(params[:id]) 
    file = Tempfile.new 
    model.to_pdf(file) 
    send_file file.path, ... 
end 

mogę zapewnić lepszy przykład jeśli wkleić kod do Twojego pytania.

+0

Witaj Scott! Myślę, że Tempfile może być rozwiązaniem. Ale nadal nie mam pojęcia, jak użyć tego do wykonania zadania, o którym wspomniałem powyżej. Przykład będzie znacznie lepszy. Dzięki – Autodidact

Powiązane problemy