У меня есть файл с почтовыми адресами, на который я хочу отправить электронное письмо.
Я разделил задания между
- одной задачей, которая читает файл
- x другие задачи, которые отправляют электронные письма
Для связи между первой задачей и другими я подумал, что использование FIFO (благодаря posix_mkfifo) было бы отличной идеей, с одним FIFO на каждый "отправка задачи", и циклически проходить через них. Так как иногда мне нужно остановить скрипт, я сохраняю смещение файла адресов после каждого чтения (в первой задаче).
Проблема в том, что когда я закрываю FIFO, смещение может быть в 500-й строке (таким образом, 500 адресов прочитаны и отправлены через FIFO), но, возможно, задачи обработали только 5 строк каждая. Как я могу предотвратить закрытие FIFO на стороне записи от других задач, чтобы они могли обрабатывать свои очереди?