在PHP中,如何保持进程运行以监视事件?

时间:2012-12-02 00:42:31

标签: php web-applications

我有一个DBMS任务,可以创建一个完整的在线竞标网站,允许用户做很多事情,比如定时拍卖竞价,现在基于定时可用性购买,以及搜索更多东西。我已经完成了该网站,只有一个小例外:一旦用户赢得定时拍卖,必须通知该用户他/她是赢家并且在24小时内结帐该项目。

我早期的方法包括简单的PHP脚本,当用户在页面上时查询数据库以查看投标时间是否结束以及查看获胜者是谁,但这种方法有两个问题。 1.用户必须不断刷新,以确定他/她是否赢了 - 如果他们在购物页面上。 2.如果用户在拍卖结束后一个月没有登录该网站,他/她将不知道他/她赢得拍卖的一个月,因此错过了24小时窗口结帐。

我一直在阅读有关cron工作的信息,但我担心的是,由于它们是预定的工作,因此没有方便的时间来安排工作,以便有效地处理它们。我的意思是我不能持续监控并让每个获胜的用户在拍卖结束后立即知道。

我也读过PHP exec(),但我不确定它是运行此任务所需的工具,因为一旦exec()完成,它就不会重新运行。

所以我想,我的问题是,是否有人知道我可以实施什么来帮助我完成这项任务。

2 个答案:

答案 0 :(得分:1)

你应该使用cron - 每隔一分钟左右运行一次,检查数据库是否有一些拍卖结束。我认为你正在构建的更大问题是向用户发出通知。如果是这种情况,他们可能不在网站上(或在他们获胜时在一些随机页面上),那么不要依赖于通过网站通知他们,当然也不是他们可能会或可能不会对网站做出的PHP请求。相反,考虑让cron调用PHP来检查获胜者是否向他们发送电子邮件以通知他们。

考虑Facebook(仅因为给予用户群最普遍的经验示例) - 如果您在网站上,他们会提供通知区域,但如果您暂时不在,他们会向您发送电子邮件让你知道发生了什么事。这就是你应该做的。

答案 1 :(得分:0)

您应该重新考虑使用cron调度,您可以非常快的间隔运行作业。