Size: a a a

Django [ru] #STAY HOME

2019 October 28

YK

Yegor Kowalew in Django [ru] #STAY HOME
Andrew Dakhnovsky
ну каждую секунду проверять - может сильно часто
а так - стандартный кейс
Если стандартный, может есть под рукой примеры реализации?
источник

A

Aquinary in Django [ru] #STAY HOME
Yegor Kowalew
Товарищи, что скажите по поводу такой идеи?
Какая логика, в системе вотчер, наблюдает за изменениями файликов.
Только файл изменился, вотчер добавляет этот файл в список, и так все которые изменяются добавляются в список.
Бесконечный цикл каждую секунду проходит по этому списку и пытается файл в списке переименовать, если не получилось, значит файл открыт юзером и делать ниче не надо.
Если файл можно переименовать значит файл юзер поковырял и закрыл. Значит можно его сунуть в базу.
Норм?
А какой размер файла?
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Aquinary
А какой размер файла?
А размер при чем?
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
или предлагаешь на размер смотреть?
источник

A

Aquinary in Django [ru] #STAY HOME
Yegor Kowalew
А размер при чем?
Можно и так. Но тогда лучше уж хеш брать
источник

AD

Andrew Dakhnovsky in Django [ru] #STAY HOME
Yegor Kowalew
Если стандартный, может есть под рукой примеры реализации?
источник

A

Aquinary in Django [ru] #STAY HOME
Размер может быть идентичен при разных данных, а хеш нет
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Aquinary
Размер может быть идентичен при разных данных, а хеш нет
На стековерфлов еще на дату последней модификации смотрят
источник

AD

Andrew Dakhnovsky in Django [ru] #STAY HOME
Yegor Kowalew
На стековерфлов еще на дату последней модификации смотрят
именно
именно она тебе и нужна
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Andrew Dakhnovsky
именно
именно она тебе и нужна
типа если файл поменялся, засекаем пару минут и только тогда пытаемся прочитать, да?
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Yegor Kowalew
https://pythonhosted.org/watchdog/
Куда еще посмотреть?
по описанию - да
источник

AD

Andrew Dakhnovsky in Django [ru] #STAY HOME
Yegor Kowalew
типа если файл поменялся, засекаем пару минут и только тогда пытаемся прочитать, да?
не понял
у тебя запустился вотчдог
увидел что файл поменялся
поменялся - делай с ним что-то (если он не открыт кем-то еще)
или в очередь посылай на обработку
и вотчдог засыпает до следующей проверки
источник

AD

Andrew Dakhnovsky in Django [ru] #STAY HOME
просто каждую секунду систему дрочить - нерационально как по мне
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Andrew Dakhnovsky
не понял
у тебя запустился вотчдог
увидел что файл поменялся
поменялся - делай с ним что-то (если он не открыт кем-то еще)
или в очередь посылай на обработку
и вотчдог засыпает до следующей проверки
если файл поменялся, это не означает что оператор закончил с ним работу, это означает что он сохранил файл.
Потому то я поменяный файл суну в список, а потом уже отдельны циклом хожу по этому списку и пытаюсь файлы в этом списке переименовать, если переименовать получается, только тогда я считаю что оператор работу с файлом завершил
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Yegor Kowalew
если файл поменялся, это не означает что оператор закончил с ним работу, это означает что он сохранил файл.
Потому то я поменяный файл суну в список, а потом уже отдельны циклом хожу по этому списку и пытаюсь файлы в этом списке переименовать, если переименовать получается, только тогда я считаю что оператор работу с файлом завершил
оператор всегда файл открывает в экслюзивном режиме?
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Pavel Zagrebelin
оператор всегда файл открывает в экслюзивном режиме?
мелкософт офис других вариантов не позволяет
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
тоесть если один файл открыл оператор для редактирования, то любой другой этот файл сможет открыть только для чтения. Проверено
источник

A

Aquinary in Django [ru] #STAY HOME
https://www.novixys.com/blog/python-check-file-can-read-write/
Если вот так?
Просто с переименовкой как-то костыльно выглядит
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
кажись под Вэндой не запашет. Ща попробую
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Yegor Kowalew
тоесть если один файл открыл оператор для редактирования, то любой другой этот файл сможет открыть только для чтения. Проверено
pyinotify умеет IN_CLOSE_WRITE event
источник