mirror of https://github.com/voidlizard/hbs2
30 lines
1.4 KiB
Plaintext
30 lines
1.4 KiB
Plaintext
TODO: hbs2-peer-queues
|
||
$workflow: backlog
|
||
|
||
Сделать механизм очередей ( циклических FIFO буферов )
|
||
с управлением ( put/get ) по RPC
|
||
|
||
hbs2-peer постоянно в памяти;
|
||
|
||
Тогда мы решаем проблемы блокировок в sqlite:
|
||
|
||
Процесс продюсер -- пишет в очередь через hbs2-peer ( на диск )
|
||
|
||
Процесс консьюмер -- читает оттуда и обновляет БД, когда к этому
|
||
готов.
|
||
|
||
Таким образом, мы избегаем проблем с блокировками и
|
||
получаем понятный асинхронный механизм взаимодействия
|
||
между разными программами из hbs2.
|
||
|
||
Технически их можно сделать на основе компактов, в каждый
|
||
compact пишутся сообщения в формате (n, bytestring), после
|
||
чтения консьюмером -- сообщения удаляются.
|
||
|
||
По превышению файлом компакта некоего размера --
|
||
производим компактизацию, т.е начинаем писать в новый
|
||
файл, а старый удаляем, как только в нём не останется
|
||
ничего для чтения... Ну или как-то так.
|
||
|
||
|