如何在我的网站上运行无限循环? (提醒/截止日期播音员)

时间:2011-09-23 12:11:51

标签: php javascript

我正在建立一个网站,我想实现一个提醒功能,如果他们有任何到期的项目或活动,或者只是提醒他们他们可能设置的任何计时器,就会提醒他们。我有一个线索,关于我如何使用javascript的计时器功能,但我希望它一直运行,如果用户在事件发生时不在线,则向队列添加提醒。有没有办法做到这一点,还是我必须在服务器上使用bash或python?

进一步解释它应该如何工作:
  - 无限循环检查每X秒的时间,如果从现在到X秒之前有提醒,请将其打印给它所属的用户 - 如果用户不在线,将其放入文件或已检查的内容,当用户登录时,对于任何错过的提醒。

我想到的另一种方法是使用本地脚本(pyton或其他东西)来检查数据库是否每隔X秒就会收到提醒,并将它们写入Web服务器上的文件中。然后,服务器端脚本将每隔X秒读取一次并将提醒打印到每个已记录的帐户(并在此时删除它)。这样,即使它所属的人被注销,也不会跳过任何提醒。

关于如何更优雅地做到这一点的任何想法?

3 个答案:

答案 0 :(得分:3)

使用Cron Job代替并运行您的脚本以连接到您的数据库并执行其他任务。

答案 1 :(得分:1)

这个功能可以用ajax和php完成。当用户不在线时,我不会检查数据库。我想最好在登录时检查提醒(除非你想在发生时发送电子邮件 - >然后你需要像其他答案中提到的cron)。你需要制作一个PHP脚本来检查必须设置哪些提醒并将它们返回到数组/ json中。在登录时调用此页面。当用户登录时,您可以定期使用ajax请求提醒php / timer。

答案 2 :(得分:1)

无限循环默认是糟糕的设计。 PHP根本不喜欢它(内存)。由于同样的原因,Javascript并不理想。除此之外,您不希望javascript sleep在尝试之间等待时阻止您的UI。

另外,当用户不在线时,我不会检查通知。这是一种无用的资源使用方式。只需保存用户上次上线的时间,并显示之前登录时未见过的通知。

我书中最干净的解决方案是一些能够进行事件驱动操作的JavaScript库。一个例子是node.js。对于事件,您不需要每N次检查一次,但只要满足某些条件就会触发事件。