|
|
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Музаффарпридется брать файлов меньше 2КБ :) и файлы не более чем 1МБ (если я не ошибаюсь) второго я не совсем понял при чем тут хтмл файл? Это в качестве примера я взял. Почти любой файловый формат имеющий спецификацию позволяет определять свою валидность. К примеру. Бинарные форматы указывают свой размер в заголовке (прямо или косвенно). Бинарные или символьные потоковые форматы (xml, json) имеют ярко выраженные старт-стопные последовательности по которым можно точно сказать что файл финализирован. и не легче ли просто ждать скажем 1секунд перед началом парсинга и после появлении файла как предлагал Блазкович? Можно ждать 1 или 2 секунды. Эту цифро подобрать экспериментально исходя из оптимального времени "готовности" файла. Вообще таймаут - это нормальное состояние например в сетевых протоколах. Единственный момент - не делать sleep(..) внутри потока. А как-то по другому возвращать в пул неработающих потоков. Например как предложил Блажкович. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 08:16 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
mayton, мы просто так исходя из содержимого не можем конкретно сказать что файл закончился или ещё туда пишутся данные, т.к. разные файлы точнее разные содержания. да со слипом все так посоветовали, хотя самым легким вариантом был :) вот с шедулером не могу разобраться что к чему... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 08:24 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Музаффарmayton, мы просто так исходя из содержимого не можем конкретно сказать что файл закончился или ещё туда пишутся данные, т.к. разные файлы точнее разные содержания. Это твои файловые форматы Spravka02,93... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 08:49 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Музаффар, Задача подсистемы выдать событие конца записи файла. Я бы валидацию делал ИС. Один доп.поток справится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:18 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
mayton, это шаблоны справок для парсинга а так получаю такого рода файлы наименования тоже специфическая 01022400.00Х (расширения начинается с 000 по FFF) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 09:24 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Музаффар, Openfiles - Queries or displays open files. Also queries, displays, or disconnects files opened by network users. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 15:43 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Usman Openfiles - Queries or displays open files. Also queries, displays, or disconnects files opened by network users. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 16:58 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Если всё происходит "на винде", то перемещать (since 1.7) файлы из исходного каталога в промежуточный. Самый хороший вариант - научить перемещать готовые к обработке файлы их поставщика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 17:14 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕсли всё происходит "на винде", то перемещать (since 1.7) файлы из исходного каталога в промежуточный. Самый хороший вариант - научить перемещать готовые к обработке файлы их поставщика. ну читать же надо тс .... чтоб переместить надо чтоб файл был свободен. а когда писался поставщик винда была в зачатке.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 17:32 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
ReadDirectoryChangesW function и отслеживать с такими параметрами: - FILE_NOTIFY_CHANGE_SIZE - FILE_NOTIFY_CHANGE_LAST_WRITE периодически вызываем функцию и выЩЩитываем разницу (размер/время)... и по истечении определенного интервала можно сделать вывод, что в файл уже никто не пишет. реализовать можно при помощи JNA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 17:33 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
вадяну читать же надо тс ....Именно. Топикстартеру требуется начинать обработку файла тогда, когда поставщик закончил запись в него. Если добавить промежуточное перемещение, то (в случае Windows) файлы, попавшие в этот промежуточный католог - гарантированно готовы к обработке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 18:40 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Usmanреализовать можно при помощи JNA При помощи JNA (или даже без его помощи) можно просто открывать файл с опцией, дающей ошибку, если файл уже открыт на запись. Гораздо проще обработать ошибку, чем рожать (негарантированную) эвристику. Но, опять-таки, в юниксах с файловыми блокировками не очень хорошо: чтобы работало, правила должны соблюдать все участники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 18:45 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovИменно. Топикстартеру требуется начинать обработку файла тогда, когда поставщик закончил запись в него. Если добавить промежуточное перемещение, то (в случае Windows) файлы, попавшие в этот промежуточный католог - гарантированно готовы к обработке. ты читал что делал mayton ? он копировал файл. копировал средствами windows. не писал "поставщиком" , а копировал созданный файл. Basil A. SidorovПри помощи JNA (или даже без его помощи) можно просто открывать файл с опцией, дающей ошибку, если файл уже открыт на запись. Гораздо проще обработать ошибку, чем рожать (негарантированную) эвристику.что и делает 20625966 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:04 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Конечно, чем проще тем лучше. Раз в 5 минут идет поток и перекидывает файлы в папку /My/.... Те что смог, они ушли на обработку. Железобетонный энтерпрайз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:06 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Petro123Конечно, чем проще тем лучше. Раз в 5 минут идет поток и перекидывает файлы в папку /My/.... Те что смог, они ушли на обработку. Железобетонный энтерпрайз.прослушиваем папку /My/...., нарываемся на файл, который копируется и возвращаемся к началу топика.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:12 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
вадя, Ты не в курсе что переписывание мгновенное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:28 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, Ты не в курсе что переписывание мгновенное?как-то не приходилось с этим сталкиваться ... перенос - да, когда из одной папки в другую - только в mfs переписывается.... но сначала надо дождаться когда файл освободится, потом перенести - гораздо проще и быстрее так обработать 20625966 Petro123Раз в 5 минут ии кто будет ждать 5 минут? когда проще и быстрее обработать эксепшен при обращении к файлу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:44 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
вадя, А когда обращатся, если он еще пишется? Быстрота нужна при ловле блох. А в Ынтырпрайзе - надежность и простота. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:48 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Petro123А когда обращатся, если он еще пишется? Быстрота нужна при ловле блох. А в Ынтырпрайзе - надежность и простота.когда пишется - происходит эсепшен. его и обрабатываешь в цикле. этих циклов примерно 5-8. файлы маленькие. делать "универсальное" для произвольного размера - нет смысла - файлы маленькие, мах 10к.... стабильно до 1к. чем предложенный вариант не прост и не надёжен? (единственно - добавить счётчик циклов, для выхода из цикла) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:57 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Petro123Быстрота нужна при ловле блох.юзер запросил данные и сидит курит 5 минут.....21 век б...ь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:58 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
вадя, Тем что у тебя 8 циклов, а с константой 2 мин или 5 будет 2 прохода. А вообще, мне пофигу. Делай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 21:00 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Petro123Тем что у тебя 8 циклов, а с константой 2 мин или 5 будет 2 прохода. А вообще, мне пофигу. Делай.8 циклов 100мс, или 2 прохода за 5 минут - есть разница? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 21:04 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
Petro123А вообще, мне пофигу.супер аргумент профи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 21:05 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
В этом шаблоне есть уникальная стоп-последовательность типа смайлика. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 22:56 |
|
||
|
доступ к файлу
|
|||
|---|---|---|---|
|
#18+
вадяты читал что делал mayton ? он копировал файлРазницу между "скопировать" и "переместить" совсем не понимаем? Если вы не в курсе возможности копировать открытые на запись файлы, то уж опция ATOMIC_MOVE функции NIO-пакета должна была навести хоть на какие-то мысли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 02:37 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39487876&tid=2122763]: |
0ms |
get settings: |
11ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 438ms |

| 0 / 0 |
