что лучше и легче использовать для сохранения состояния файла?

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
Добрый день. Задача такая: скрипт отправляет сообщения во многопоточном режиме. При запуске создается два текстовых файла со всеми данными. Первый файл используется для получения очередной строки для работы скрипта. Второй используется для сохранения количества оставшихся строк. При удачном сенде из второго файла удаляется строка, которая отработала в скрипте. Нужно сохранить состояние второго файла при принудительной остановке скрипта. Сейчас идет очень частый доступ-перезапись этого файла. И часто выходит, что при принудительной остановке скрипта этот файл пустой. Подскажите, пожалуйста, что можно использовать в этом случае. И, конечно, что будет проще в этом случае использовать. Спасибо.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 580
457
83
зачем вы постоянно файл теребите, считайте его в память, и в памяти уже делайте манипуляции, запись производите только по результату в конце
если файл большой, можно частями работать
 

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
зачем вы постоянно файл теребите, считайте его в память, и в памяти уже делайте манипуляции, запись производите только по результату в конце
если файл большой, можно частями работать
вопрос в том, как сделать так, чтобы при закрытии консоли оставшиеся строки из этого виртуального файла сохранились на диск в файл реальный. допустим ctrl+c или электричество кончилось. клиент говорит, что будут использоваться файлы до 10000 строк. и если по прошествии прошедших 3000 строк ему понадобится остановить скрипт - он хочет в следующий раз начать с точки остановки файла, а не сначала.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 580
457
83
как сделать так, чтобы при закрытии консоли оставшиеся строки из этого виртуального файла сохранились на диск в файл реальный. допустим ctrl+c или электричество кончилось
перехватывать события вин апи
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 580
457
83
вопрос в том, как сделать так, чтобы при закрытии консоли оставшиеся строки из этого виртуального файла сохранились на диск в файл реальный. допустим ctrl+c или электричество кончилось. клиент говорит, что будут использоваться файлы до 10000 строк. и если по прошествии прошедших 3000 строк ему понадобится остановить скрипт - он хочет в следующий раз начать с точки остановки файла, а не сначала.
с файлом у вас вряд ли что то получиться, это гонка за ресурс, вам нужно как то разруливать ее, мьютексы делать, и так далее
но все равно не предвиденные обстоятельства (отключение света), это только вин апи (если винда)
 
  • Мне нравится
Реакции: robisho

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
с файлом у вас вряд ли что то получиться, это гонка за ресурс, вам нужно как то разруливать ее, мьютексы делать, и так далее
но все равно не предвиденные обстоятельства (отключение света), это только вин апи (если винда)
спасибо, направление понял, пойду разбираться)
 

Форум IT Специалистов