2 votes

Rails, Paperclip, DelayedJob et nettoyage des fichiers temporaires

Dans une application Ruby on Rails, j'utilise Paperclip pour gérer les fichiers attachés. Le téléchargement (à partir d'une URL) et l'attachement sont effectués en arrière-plan (avec DelayedJob).

Chaque tâche peut comporter de nombreux fichiers à télécharger, ce qui se traduit par des dizaines de fichiers temporaires dans le répertoire /tmp.

Parfois, certains fichiers temporaires sont laissés dans le système de fichiers jusqu'à ce que le travailleur DelayedJob soit redémarré.

Je me demande s'il existe un moyen de nettoyer manuellement les fichiers temporaires.

Merci de votre aide

0voto

sockmonk Points 2257

Vous pouvez le faire automatiquement avec une tâche programmée régulièrement, avec un cron normal, ou avec quelque chose comme la gemme Clockwork ou resque-scheduler si vous voulez éviter la syntaxe de cron. Demandez-lui de rechercher les fichiers temporaires dans le répertoire donné ; c'est plus facile si c'est un sous-répertoire spécifique sous /tmp, et de supprimer tous les fichiers qui ont plus de 10 minutes, ou n'importe quel âge qui a du sens pour votre application. Exécutez cette tâche une fois par jour, ou plusieurs fois par jour, et vous n'aurez pas à vous en soucier.

0voto

ryush00 Points 307

Vous pouvez utiliser Tempfile .

Une classe utilitaire pour gérer les fichiers temporaires.

file = Tempfile.new('foo')
begin
    # process here
ensure
    file.close
    file.unlink    # deletes the temp file
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X