Как правильно организовать многопоток с таблицей

Kost9lbrik

Client
Регистрация
07.10.2014
Сообщения
110
Благодарностей
10
Баллы
18
Всем привет.
Погуглил форум и не нашел описания моей проблемы при организации многопотока при работе с табличным файлом.

Думаю вопрос решается легко, просто мне не хватает базовых знаний.
Шаблон рассылки писем (на кубиках).
Есть файл с почтовыми ящиками с которых делается рассылка.
Как я предположил сразу это брать строку и записывать ее в конец, но данные об успешном выполнении вносятся в конце проекта (об успехе, кол-во отосланных писем с ящика, ошибки).
Сразу пришла мысль записывать строку в конец только по окончании, но если в процессе выполнения произойдет critical crash (закрешится постер, перезагрузится машина, падение инета и тд), то данный ящик потеряется.

Посему прошу помощи у мастеров как это организовать, так чтоб и можно было запустить многопоток(особенно когда заведется проксей побольше) и не терять данные.

Заранее спасибо за уделенное время.
 

Alex733

Client
Регистрация
27.11.2017
Сообщения
330
Благодарностей
243
Баллы
43
Для critical crash - добавить action Bad End.
Для остального присваивать емейлам какой-либо статус, который записывать при старте шаба.
А вообще лучше работать с БД для этих целей.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
В многопотоке да и вобще лучше работать со списками.

Можно брать строку без удаления, и по завершению работы удалять эту строку.
Операции над списком - удалить строки - содержащие текст. И туда переменную взятую ранее из того же списка.
Далее запись в конец.

P.S. Я бы залочил данную конструкцию.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Как сказали выше, для этих целей лучше подойдет БД, с отдельным полем статуса для каждой обрабатываемой строки.
При работе с большим количеством потоков БД ведет себя более предсказуемо.
 

Kost9lbrik

Client
Регистрация
07.10.2014
Сообщения
110
Благодарностей
10
Баллы
18
В многопотоке да и вобще лучше работать со списками.
А вообще лучше работать с БД для этих целей.
Как сказали выше, для этих целей лучше подойдет БД,
Спасибо всем за помощь. Понял, что нужно разбираться с БД.
Всем отличного настроения
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)