倒计时完成后的服务器端操作

时间:2015-12-30 23:26:52

标签: php mysql api daemon countdown

我一直在研究这方面的答案,但找不到适合用例的类似问题。

我有一个供应商为我构建移动应用程序/ API(php,mysql),他们的解决方案似乎不稳定且不可靠。寻找更好的方法。

该功能允许用户设置倒计时实例 - 存储在数据库中,并在未来的某个时间使用开始时间和结束时间。达到结束时间后,将执行操作。

目前,解决方案是在服务器上使用守护程序,该守护程序每分钟运行一次,以检查所有已完成的结束时间,并根据用户选择的倒计时实例执行操作。问题是,正如我所提到的,这是非常不可靠的。当它正常工作时,效果很好。但它通常不起作用。

在客户端(应用程序)中,当用户点击倒计时屏幕时,它会从API检查开始时间和结束时间,并在适当的时间开始倒计时。当客户端到达结束时间时,它会回调API以检查操作的结果并将其显示在客户端中。

所以,长话短说我试图找出一个更稳定的替代方法,在服务器上运行一个守护进程来检查结束时间并触发一个动作。由于客户希望在结束时完成操作,因此应该是一个快速可靠的过程。我曾考虑使用客户端调用API作为运行操作的触发器,但如果其他40个客户端正在观看相同的倒计时并同时请求API,我担心我可能会遇到冲突。

提前感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

网站上的用户是否一直都在使用?我通过获取开始时间,将其转换为分钟/秒然后创建一个javascript倒计时来实现类似的操作,该倒计时在完成时间后等待额外的2秒(确保计时器确实结束)。然后,它对php脚本进行ajax调用以完成一个动作(返回一个JSON字符串。

保存服务器端,只有当用户在那里并且需要它时才会运行。