J'ai cette commande dans un contrôleur Railset fichier temporaire Garbage Collection
open(source) { |s| content = s.read }
rss = RSS::Parser.parse(content, false)
et entraîne dans des fichiers temporaires qui comblent l'espace disque (rare).
J'ai examiné le problème dans une certaine mesure, et il se trouve quelque part dans la pile cela se produit:
io = Tempfile.new('open-uri')
, mais il semble que cette instance n'est jamais explicitement fichier temporaire fermé. Il a une
def _close # :nodoc:
méthode qui pourrait se déclencher automatiquement lors de la récupération de place?
Toute aide pour savoir ce qui se passe ou comment nettoyer les fichiers temp serait utile.
Qui appelle _Fermer? Sans patch de singe, je n'ai pas accès à ce fichier temporaire, je pense. –
Je vois le problème maintenant. J'ai ajouté quelques informations à la réponse, j'espère que cela fonctionnera pour vous. – Guss
Merci pour cela! Je ne peux pas imaginer qu'appeler explicitement le GC résoudra le problème. Dans mes tests, la seule façon d'obtenir un fichier temporaire pour ne pas être nettoyé est d'interrompre le programme. Donc, je ne peux pas comprendre ce qui pourrait arriver. –