opa - 不同的 OPA 应用程序可以共享数据库吗?

标签 opa

我只是在研究 OPA 并试图从传统的 LAMP 背景中实现飞跃,所以这是我的第一个新手问题:

我能否让两个 OPA 应用程序共享同一个数据库,比如一个写入数据库而另一个从数据库读取?

最佳答案

是的,这当然是可能的。一个简单但完整的例子:

[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(并刷新页面),使用 db_read 应用程序查看。

如有错误希望Opa-DB专家指正。

关于opa - 不同的 OPA 应用程序可以共享数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6842550/

相关文章:

osx-lion - OS X Lion 下 Opa 构建失败

pattern-matching - Opa 匹配模式或

opa - 如何在 Opa 中访问 HTML Canvas 元素?

file-io - 如何在 Opa 中进行文件 I/O?

opa - Opa 提供代数数据类型吗?

opa - 访问一条记录,过滤类型为 sum 的列表后

security - Opa 安全和错误修复

opa - 将 OPA 连接到现有关系数据库

scope - 修改封闭范围内的变量

opa - 我在哪里可以找到所有 Opa 指令的文档?