Уведомления

Группа в Telegram: @pythonsu

#1 Июль 13, 2009 19:02:40

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

Суть такова - есть 2 потока, в одном запускается екстернальный тулза (через process), которая создаёт файл на диске. Другой процес ждёт файлов в папке и, как только такой появляется, аплоадит на хостинг. После чего удаляет.
Вот тут-то и проблема - при попытке удаления файла получаю WindowsError - The process can't access the file because it is being used by another process.
Хотя аплоадит файл успешно. Куда копать - непонятно. Что можно попробовать дабы побороть?

Офлайн

#2 Июль 13, 2009 21:19:03

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

а точно файл закрывается 2м процессом перед удалением?

Офлайн

#3 Июль 14, 2009 18:38:34

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Проблема с удалением файла созданного в другом потоке.

То штука известная. У меня часто на юниттестах лезет - а иногда и в рабочем коде.
Винда не совсем сразу (не атомарно) закрывает все ресурсы из убитого процесса - если он сам их явно не закрыл.
И можно попасться. Я просто пытался в таком случае чуть-чуть подождать и повторить. Помогает.



Офлайн

#4 Июль 14, 2009 19:48:07

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

Андрей Светлов
Спасибо, попробую.
slav0nic
Поискал - хйз, вроде бы везде закрывается. Я на всякий случай явно прописал везде, может поможет.

Офлайн

#5 Июль 14, 2009 21:35:05

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

Если ждать около минуты - удаляется (я пытался удалить файл каждых 2 секунды).
Абзац просто.

Офлайн

#6 Июль 15, 2009 17:03:45

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

как вариант по пробывать убить процесс по pid а затем удалить фаил и заного запускать нужный процесс

Офлайн

#7 Июль 15, 2009 18:04:15

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

Ferroman
Настолько критично? Можно ведь по-другому алгоритм удаления написать.



Офлайн

#8 Июль 15, 2009 18:23:28

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

Lexander
Привет :)
по идее в питоне можно реализовывать разные алгоритны просто требуется код который быблоб хорошо посмотреть :) , да и посмотреть где реализованный код… по идее этоб был правильный вопрос…
Ferroman
покажи код :)

Офлайн

#9 Июль 15, 2009 18:24:14

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

sypper-pit
В том-то и все дело, что так не получится.
Lexander
Например?

Офлайн

#10 Июль 15, 2009 18:41:03

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Проблема с удалением файла созданного в другом потоке.

Ferroman
тогда я б посмотрел что предлагает “”“Lexander”“” , думаю надо продумать кк именно это реализовать и на сколько это будет просто :) я иногда в такие дебри нырял, что код просто машину подвешал , а можно просто и довольно быстро с небольшой погрешностью :) попробывать …про рыб я помню…
Lexander
По подробнее можешь описать решение ?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version