2011-01-08 4 views
2

Ich entwickle eine Anwendung (auf GAE), die einen Countdown-Timer benötigt und benachrichtigt die Client-Seite, wenn der Timer Null erreicht.Wie mache ich einen Countdown-Timer auf appengine?

Um die Client-Seite zu benachrichtigen, verwende ich GAE Channel API.

irgendwelche Ideen? (Berücksichtigt GAE-Einschränkungen. Verwenden von Thread oder Timer aus der Java-API nicht).

+0

brauchen, ist es einen Grund, der Client den Countdown nicht tun kann? Was versuchst du zu erreichen? –

+0

Das Problem ist, dass ich die Clients benachrichtigen muss, wenn ein Serverobjekt abläuft. – Adriano

+1

Wenn der Server weiß, wann das Objekt abläuft, warum senden Sie nicht einfach die Zeit bis zum Ablauf zusammen mit der Seite und lassen Sie den Client feststellen, wann er abgelaufen ist. –

Antwort

1

Ich weiß nicht, wie viel Zuverlässigkeit/Präzision, die Sie benötigen, sind auf jeden Fall hier ein paar Ideen:

  1. Nachdem die Server-Ortszeit am memcache mit der jeweiligen Client-ID zu speichern, ein senden " Timer-Start " Nachricht an den Client über die Channel API Handhabung Client-Seite über einige Javascript-Zähler. Wenn der Timer abgelaufen ist oder der Client seine Aufgaben erfüllt hat, rufen Sie den Server an und führen Sie Ihre Geschäftslogik aus.

  2. Verwenden Sie die Countdown Parameter der TaskQueue, und vor dem „Timerstart“ Nachricht an den Client, fügen Sie eine Aufgabe mit einem bestimmten Countdown senden. Die hinzugefügte Task nach n Sekunden wird ausgelöst und sollte die Nachricht "timer-over" an den Client senden.

0

Können Sie nicht einfach die Informationen von der Clientseite abrufen? Oder Sie können Cron-Task machen, die einmal pro Minute ausgeführt wird und entsprechende Nachricht senden.

hängt davon ab, wie oft müssen Sie dies tun, whta prcision Sie