2010-12-20 44 views
-1

假设我有一个函数在PHP这样的:一个会话应该在其他会话进入函数之前完成一个php函数,怎么样?

function post_data() 
{ 

    // Do the job 
} 

现在我想先于其他游客进入功能这一功能,首先完成当前访问者。其他访问者应该通过此功能并执行剩余的脚本作业。我过多地搜索了这个问题,但找不到合适的答案。我发现使用flock()php函数。我试过flock(),它对我来说效果最好,但我想要一个独立的解决方案。

那么在没有使用flock()的情况下,其他人在进入函数之前如何锁定这个函数?

回答

2

在像这样的情况下锁定整个函数是一个坏主意;你基本上是序列化你的网站的数据处理。您确实需要尽可能缩小范围,以便只需要哪些代码需要同步。

而你最终不得不lock,你最好不要重新发明轮子。

+0

我想写我的cron函数,所以如果2个或更多的访问者同时来,他们将同时读取所有cron存储的值,并将运行该函数。这就是为什么我希望它完成第一个访问者,并且该功能不应该运行,直到下一个时间表计时。 – 2010-12-21 04:25:17

+0

@Kashif Javed - 我不确定我完全理解你在做什么;你上面引用的功能实际上是做什么的,确切地说呢?多久时间?如果有另一位访问者出现,而第一位访问者仍在使用该功能,您希望发生什么?此功能是否对网站的所有请求运行,或仅运行某个子集的时间,或仅针对某些用户,或仅当某人访问某个页面时运行? – 2010-12-21 04:32:53

+0

该功能适用​​于所有访客。上面的函数没有什么,只是我认为如果我有一个这样的函数,并且只有一个访问者应该一次完成。其他游客应该回来,而一个人在做这项工作。该功能可用于任何目的。这不应该是多长时间或需要做什么。 – 2010-12-30 09:22:54

相关问题