2011-07-27 12 views
3

私はOPAを調査し、伝統的なLAMPの背景から飛躍をしようとするので、ここでは多くの初心者の質問の私の最初ですよ:異なるOPAアプリはデータベースを共有できますか?

私は同じデータベースを共有する二つOPAのアプリを持つことができ、に書き込まれるものを言いますデータベースとそこから読み取る別のもの?

答えて

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 

は、ポート5001上のデータベースcounterのデータベース・サーバを実行します。

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アプリはカウンタを毎秒更新されます。 アプリの場合は、localhost:8080にアクセスして(ページを更新して)表示されます。

私は何か問題があった場合、Opa-DBの専門家が私に修正してくれることを願っています。

+0

akoprowskiありがとう、私は後で試してみますが、キーが 'opa-db-server -b 127.0.0.1:5001 --db-local counter'を使っているようです。 – russellfeeed

+0

ちょうど試してみました。 。 "クライアントでノードプロパティを設定できません"という警告が表示されましたが、コンセプトはうまく機能しています。ありがとう! – russellfeeed

関連する問題