Да, это возможно.Простой, но полный пример:
[db.opa]
database ./counter
db /counter : int
Counter = {{
read() = /counter
inc() = /counter <- read() + 1
}}
[db_read.opa]
server = one_page_server("Counter app", -> <>Counter value: {Counter.read()}</>)
[db_write.opa]
_ = Scheduler.timer(1000, -> Counter.inc())
Скомпилировать с помощью:
opa db_read.opa db.opa -o db_read.exe
opa db_write.opa db.opa -o db_write.exe
Запустить сервер базы данных для базы данных counter
на порт 5001
:
opa-db-server -b 127.0.0.1:5001 --db-local counter
Запустить приложения, подключающиеся к этой базе данных:
./db_read.exe --db-remote 127.0.0.1:5001
./db_write.exe --db-remote 127.0.0.1:5001
Приложение db_write
обновляет счетчик каждую секунду.Вы можете увидеть это с приложением db_read
, посетив localhost:8080
(и обновив страницу).
Надеюсь, эксперты Opa-DB исправят меня, если я что-то не так сделал.