d亚当的库模块
原文
:粗略阅读一下cgi
模块,就会发现arsd
提供了vibe.d
的一些相同功能
,但是使用了多进程或多线程
而不是纤程
,这是真吗?
它做的远不止这些,还包括纤程接口(-version=embedded_httpd_hybrid
)
:另外,在使用arsd.cgi
和arsd.database
时,在同一个DB
连接套接字上,如何避免把DB
请求混在一起?
不要用相同
数据库连接套接字
,每个worker
都有单独套接字.
我一般的做法是:
Database getDb() {static Database db;if(db is null)db = new WhicheverImpl(args);return db;
}
所以你得到了一个需要时重建的线本缓存
.这在所有当前
模式下都能可靠
地工作.(我可能会在版本11中添加工作方式不同
的新模式
,这样,我会为此添加新的助手函数
).
:关于总之,你认为使用arsd.cgi
比vibe.d
有什么优势(当然,除了简单之外).
几乎一切.它使用起来简单
得多,有更多的库兼容性
,更好的性能
(编译速度更快,服务速度更快),更稳定(更少的漏洞
和更多的长期API
支持),更多的功能
尽管有一些地方vibe
可能有我没有的东西(他们有个redis
库,但也可在我的系统
中使用他们的库,哈哈),我有他们有的大部分
东西和他们没有
的(比如html
表单生成器).