问题来了, 我有一个 PHP 文件每秒调用一次,持续 20 秒。如果我编写一个查询来更新一个表,它将执行 20 次。但我希望它仅在 20 次调用中更新一次。 20 秒后需要恢复表以进行进一步更新。我怎样才能做到这一点?是否有类似触发器的东西可以在一段时间内自动阻止?
I have tried something so far,
- 我在更新当前时间戳的表中保存了一条记录,我正在检查下一次调用的时间戳,如果超过 20 秒,我将更新它,否则只是传递更新脚本。可以,但是还有更有效的方法吗?
最佳答案
有趣的方法,在 PHP 5.3 上,您可以使用 APC 缓存来存储变量 20 秒,并假设它不存在运行您的查询。随着 PHP 采用不同的缓存方法,这种情况将在 php 5.5 中发生变化。
if(!$value = apc_fetch('key')) {
// Run your query and store the updated key
apc_store('key', true, 20);
}
虽然枯燥乏味,但确实面向 future 的方法是使用 session 变量来有效地执行相同的操作,并检查其是否在 20 秒的限制内。
if(strtotime($_SESSION['timer']) > strtotime("-20 seconds")) {
// run your query and update the timer with the update time.
$_SESSION['timer'] = date();
}
关于php - 阻止表更新查询 20 秒。可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22323665/