来自并发请求的一次调用只有60秒超时

时间:2014-09-04 13:10:57

标签: php time io

我有一个函数callUpdate()需要在网页管理员的每次更新后执行。

callUpdates执行一些缓存(最多需要30秒......)所以立即执行它并不重要,但在最后一次更新之后的合理时间内说60秒。

如果用户(用户)在短时间内连续几次更改,目标是跳过处理。

这是我目前的代码:

//this in separate stand alone script that is called asynchronous way
//so hanging for 1min does not and block the app.

function afterUpdate(){
    $time = time(); 
    file_put_contents('timer.txt', $time); 

    sleep(60);

    if (file_get_contents("timer.txt") == $time) {
        callUpdate();
    } 
}

我关注的是睡眠功能......如果需要太多资源 (如果我进行10次快速保存,这将启动10个PHP进程,每个进程运行将近60秒..)

如果2个用户同时在同一个文件上调用file_put_contents(),会发生什么。

请告诉我是否有更好的方法以及我的是否有一些重大问题。

注意:会话之间的数据只能存储在文件中 在那里我可以有限地访问服务器设置" APC设置等等#34;

0 个答案:

没有答案