Форум сайта python.su
Суть такова - есть 2 потока, в одном запускается екстернальный тулза (через process), которая создаёт файл на диске. Другой процес ждёт файлов в папке и, как только такой появляется, аплоадит на хостинг. После чего удаляет.
Вот тут-то и проблема - при попытке удаления файла получаю WindowsError - The process can't access the file because it is being used by another process.
Хотя аплоадит файл успешно. Куда копать - непонятно. Что можно попробовать дабы побороть?
Офлайн
а точно файл закрывается 2м процессом перед удалением?
Офлайн
То штука известная. У меня часто на юниттестах лезет - а иногда и в рабочем коде.
Винда не совсем сразу (не атомарно) закрывает все ресурсы из убитого процесса - если он сам их явно не закрыл.
И можно попасться. Я просто пытался в таком случае чуть-чуть подождать и повторить. Помогает.
Офлайн
Андрей Светлов
Спасибо, попробую.
slav0nic
Поискал - хйз, вроде бы везде закрывается. Я на всякий случай явно прописал везде, может поможет.
Офлайн
Если ждать около минуты - удаляется (я пытался удалить файл каждых 2 секунды).
Абзац просто.
Офлайн
как вариант по пробывать убить процесс по pid а затем удалить фаил и заного запускать нужный процесс
Офлайн
Ferroman
Настолько критично? Можно ведь по-другому алгоритм удаления написать.
Офлайн
Lexander
Привет :)
по идее в питоне можно реализовывать разные алгоритны просто требуется код который быблоб хорошо посмотреть :) , да и посмотреть где реализованный код… по идее этоб был правильный вопрос…
Ferroman
покажи код :)
Офлайн
sypper-pit
В том-то и все дело, что так не получится.
Lexander
Например?
Офлайн
Ferroman
тогда я б посмотрел что предлагает “”“Lexander”“” , думаю надо продумать кк именно это реализовать и на сколько это будет просто :) я иногда в такие дебри нырял, что код просто машину подвешал , а можно просто и довольно быстро с небольшой погрешностью :) попробывать …про рыб я помню…
Lexander
По подробнее можешь описать решение ?
Офлайн