3

我正在寻找一种方法来存储通过 API 传入的一些数据,并能够从同一脚本的另一个实例访问这些数据。基本上,当我收到一个请求时,我想将数据保留 5 秒,然后查看另一个请求是否在 5 秒内匹配其中一个字段。我已经通过会话和使用 APC 尝试了几种方法。下面是代码的 APC 版本,会话版本与 APC 位切换为相应的会话位相同。

发生的情况是,无论我尝试使用哪种机制来存储数据,脚本的第二个实例都看不到存储的信息。

预先感谢您的帮助。

//data exists, this is the second request with matching data.
if(apc_exists('key')){
    //do work
    //delete first request data from storage so it does not get processed below.
    apc_delete('key');
} else {
    //no data for this key, store data and wait 5 secs.
    apc_add('key', $data);
    sleep(5);
//stored data still exists, this is the only request coming with this data.
if(apc_exists('key')){
        //do work
    } else {
        //data no longer exists, taken care of by other instance, just exit.
    exit();
}
4

1 回答 1

1

不保证 APC 可以与 CGI/FastCGI SAPI 一起使用——你最好看看 redis、memcached 或其他键值存储引擎,独立于 php。

于 2013-06-12T15:35:56.690 回答