Même si vous supprimez le dossier temporaire, le fichier ne sera pas complètement supprimé et il exercera une pression sur le disque dur, alors fermons-le correctement
Dans Ruby, vous pouvez facilement créer un dossier temporaire et le dossier disparaît lorsque le bloc se termine, il est donc facile à gérer en tant que dossier de travail.
Dir.mktmpdir('test') do |dir|
#Créer et ouvrir des fichiers
end
Si vous oubliez de le fermer simplement en l'ouvrant car il disparaît de toute façon dans le dossier temporaire ...
Dir.mktmpdir('test') do |dir|
#Processus de génération de fichiers
f = File.open(path)
#travail
end
Le dossier tmp est vide, mais le disque dur est de plus en plus compressé ... Oui, avec Linux, tant que le processus reste, il n'est pas complètement terminé. À moins que vous ne redémarriez le serveur Rails ou Delayed Job Woker et que vous n'abandonniez le processus qui gère le problème, il restera.
$ lsof | grep delete
bundle 23931 (Abréviation) /tmp/test20200317-23931-cayd6g/test.pdf (deleted)
*) Dans l'exemple ci-dessus, le processus 23931 est en train de saisir, il est donc temporairement supprimé.
Puisque le fichier est libéré, il sera définitivement supprimé lorsque le dossier temporaire sera supprimé. Si vous faites cela, vous n'avez pas à abandonner tout le processus
Dir.mktmpdir('test') do |dir|
#Processus de génération de fichiers
File.open(path) do
#travail
end
end
Recommended Posts