3

私はちょうど OPA を調査していて、従来の LAMP のバックグラウンドから飛躍しようとしているので、初心者向けの多くの質問の最初の質問を以下に示します。

2 つの OPA アプリで同じデータベースを共有することはできますか (1 つはデータベースに書き込み、もう 1 つはデータベースから読み取るなど)。

4

1 に答える 1

5

はい、もちろん可能です。シンプルだが完全な例:

[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 の専門家が訂正してくれることを願っています。

于 2011-07-27T10:39:02.473 に答える