如何在appengine上制作倒计时器?
我正在开发一个应用程序(在 GAE 上),它需要一个倒计时器,并在计时器达到零时通知客户端。
为了通知客户端,我正在使用 GAE Channel API 。
有什么想法吗? (考虑到 GAE 限制。不使用 Java API 中的线程或计时器)。
I am developing an application (on GAE) that needs a countdown timer and notifies the client side when the timer reaches zero.
To notify the client side i'm using GAE Channel API .
any ideas? (Considering GAE limitations. not using Thread or Timer from Java API).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不知道您需要多少可靠性/精度,无论如何,这里有一些想法:
使用相应的客户端 ID 将服务器本地时间保存在 memcache 上后,发送“计时器启动” 通过处理该消息的Channel API 向客户端发送消息客户端通过一些 Javascript 计数器。当计时器结束或客户端完成其职责时,调用服务器并执行您的业务逻辑。
使用 TaskQueue,并在向客户端发送“计时器开始”消息之前,添加具有给定倒计时的任务。 n 秒后添加的任务将被触发,并应向客户端发送“timer-over”消息。
I don't know how much reliability/precision you need, anyway here are a couple of ideas:
After saving the server local time on memcache with the respective client ID, send a "timer-start" message to the client through the Channel API handling it client-side via some Javascript counter. When the timer is over or client has completed its duties , call the server and do your business logic.
Use the countdown parameter of the TaskQueue, and before sending the "timer start" message to the client, add a task with a given countdown. The added task after n seconds will be triggered and should send the "timer-over" message to the client.
不能直接从客户端轮询信息吗?
或者您可以创建每分钟运行一次的 cron 任务并发送适当的消息。
取决于您需要多久执行一次此操作,您需要什么精度
Can't you just poll for the information from client side?
Or you can make cron task that run's once a minute and send appropriate message.
depends on how often do you need to do this, whta prcision you need