mirror of https://github.com/voidlizard/hbs2
wip
This commit is contained in:
parent
6ace073d9c
commit
0c38bbf28c
|
@ -0,0 +1,29 @@
|
|||
TODO: hbs2-peer-queues
|
||||
$workflow: backlog
|
||||
|
||||
Сделать механизм очередей ( циклических FIFO буферов )
|
||||
с управлением ( put/get ) по RPC
|
||||
|
||||
hbs2-peer постоянно в памяти;
|
||||
|
||||
Тогда мы решаем проблемы блокировок в sqlite:
|
||||
|
||||
Процесс продюсер -- пишет в очередь через hbs2-peer ( на диск )
|
||||
|
||||
Процесс консьюмер -- читает оттуда и обновляет БД, когда к этому
|
||||
готов.
|
||||
|
||||
Таким образом, мы избегаем проблем с блокировками и
|
||||
получаем понятный асинхронный механизм взаимодействия
|
||||
между разными программами из hbs2.
|
||||
|
||||
Технически их можно сделать на основе компактов, в каждый
|
||||
compact пишутся сообщения в формате (n, bytestring), после
|
||||
чтения консьюмером -- сообщения удаляются.
|
||||
|
||||
По превышению файлом компакта некоего размера --
|
||||
производим компактизацию, т.е начинаем писать в новый
|
||||
файл, а старый удаляем, как только в нём не останется
|
||||
ничего для чтения... Ну или как-то так.
|
||||
|
||||
|
Loading…
Reference in New Issue