私はちょうど OPA を調査していて、従来の LAMP のバックグラウンドから飛躍しようとしているので、初心者向けの多くの質問の最初の質問を以下に示します。
2 つの OPA アプリで同じデータベースを共有することはできますか (1 つはデータベースに書き込み、もう 1 つはデータベースから読み取るなど)。
私はちょうど OPA を調査していて、従来の LAMP のバックグラウンドから飛躍しようとしているので、初心者向けの多くの質問の最初の質問を以下に示します。
2 つの OPA アプリで同じデータベースを共有することはできますか (1 つはデータベースに書き込み、もう 1 つはデータベースから読み取るなど)。
はい、もちろん可能です。シンプルだが完全な例:
[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 の専門家が訂正してくれることを願っています。