我想使用GWAN API Key-Value来记录和读取大量数据(以多线程方式)。问题是我的录音仅在当前页面上可用,因此无法在我的其他页面上使用。
您能告诉我一个例子或解释如何创建一个持久的KV商店(可以在我的所有子域上访问)吗?
以下是我目前使用的示例:
kv_t store;
kv_init(&store, "users", 10, 0, 0, 0);
kv_item item;
item.key = "pierre";
item.klen = sizeof("pierre") - 1;
item.val = "pierre@example.com";
item.flags = 0;
kv_add(&store, &item);
char *p = kv_get(&store, "pierre", sizeof("pierre") - 1);
xbuf_xcat(get_reply(argv), "<br>pierre's email address: %s<br>", p);
但不持久。
答案 0 :(得分:1)
由于G-WAN脚本是独立编译和链接的,因此“全局”变量是“静态的”(对每个脚本而言),而不是所有脚本都可用。
因此,您必须将KV存储附加到持久性指针。 G-WAN提供persistent pointers不同的范围:
US_REQUEST_DATA = 200, // Request-wide pointer
US_HANDLER_DATA, // Listener-wide pointer
US_VHOST_DATA, // Virtual-Host-wide pointer
US_SERVER_DATA, // global pointer (for maintenance script)
有几个G-WAN脚本示例演示了如何执行此操作:
http://gwan.ch/source/persistence.c http://gwan.ch/source/stream1.c http://gwan.ch/source/forum.c 等