2009-06-09 17 views
5

Aplikacja do przesyłania strumieniowego na Twitterze mówi, że powinniśmy otworzyć żądanie HTTP i parsować aktualizacje w miarę ich pojawiania się. Miałem wrażenie, że aplikacja Google do urletch nie może otworzyć żądania http otwartego przez 10 sekund.Czy jest jakikolwiek sposób na urlfetch Google App Engine, aby otworzyć i zachować połączenie usługi Twitter Streaming API?

Rozważałem posiadanie pracy cron, która co kilka sekund odpytywała moje konto na Twitterze, ale myślę, że Google AppEngine zezwala tylko na zadania cron raz na minutę. Jednak moja aplikacja potrzebuje niemalże w czasie rzeczywistym dostępu do moich usług Twittera (najlepiej tylko 10 sekund lub mniej opóźnień).

Czy istnieje jakakolwiek metoda otrzymywania aktualizacji z Twittera w czasie rzeczywistym?

Dzięki!

+0

Aby ankietować Twitter co kilka sekund, warto rozważyć kolejkę zadań lub zaplecze. – Bugs

Odpowiedz

2

Niestety, nie można użyć interfejsu API urlfetch do "zawieszenia". Wszystkie dane zostaną zwrócone, gdy żądanie się zakończy, więc nawet gdybyś mógł je otworzyć dowolnie długo, nie zrobiłoby ci to wiele dobrego.

Czy rozważałeś użycie Gnip? Udostępniają system powiadomień "web hooks" oparty na technologii "push" dla wielu kanałów publicznych, w tym publicznej linii czasu Twittera.

+0

Gnip to "Re-Launching Februaru 2010". Czy są inne usługi, które to zrobią? – dfrankow

+0

Brak tego, o czym obecnie wiem. :( –

1

Jestem ciekawy.

Czy nie chcesz, aby to było pobieranie po stronie klienta? Czy odpytujesz swój publiczny kanał? Jeśli tak, to zdecentralizowałbym pracę raczej klientom, niż serwerowi ...

+0

Naprawdę chcę wykonać pewne przetwarzanie aktualizacji po stronie serwera (filtrowanie specyficzne dla użytkownika końcowego), więc polling po stronie klienta nie będzie działał. W każdym razie dzięki! – ehfeng

+0

Ach, ma sens. –

1

Możliwe jest korzystanie z Google Compute Engine https://developers.google.com/compute/ w celu zachowania nieograniczonego zawieszania połączeń GET, a następnie wywoływania webhooka w aplikacji AppEngine w celu dostarczania danych z maszyny wirtualnej silnika obliczeniowego do miejsca, w którym musi znajdować się AppEngine.