2010-10-26 13 views
6

Mam aplikację na iPada, która działa zarówno w trybie offline, jak i offline, ale gdy jestem offline, są połączenia z usługą sieci Web, które trzeba będzie wykonać, gdy dostępność online będzie ponownie dostępna.kolejka wiadomości dla systemu iOS/iPad - coś podobnego do MSMQ?

Przykład: nowy klient jest dodawany do aplikacji, należy go wysłać do serwisu internetowego, ale ponieważ jesteśmy w trybie offline, nie chcemy spowalniać użytkownika, więc pozwalamy im dodawać lokalnie i kontynuować, ale potrzebujemy pamiętać, że to wezwanie musi być wykonane w serwisie internetowym, kiedy tylko możemy. To samo dotyczy składania zamówień i takich.

Czy istnieje jakaś kolejka, którą można skonfigurować, która uruchomi się, gdy będziemy mieć połączenie?

Odpowiedz

3

Nie sądzę, aby obciążenie ciężkiego narzędzia takiego jak MSMQ było potrzebne do wykonania prostego działania. Możesz używać danych podstawowych, utrzymywać zarządzane obiekty z danymi potrzebnymi do wywołania usługi internetowej i usuwać tylko każdy zarządzany obiekt po pomyślnym wpisie. Może istnieć sposób przechwytywania zdarzenia po uruchomieniu łączności, ale z pewnością można utworzyć powtarzalny NSTimer, gdy pierwsza wiadomość jest w kolejce, i zatrzymać ją, gdy w kolejce nie ma żadnych wiadomości.

+0

kolejka część jest moje pytanie, patrząc na mały kierunku, w jaki sposób tego dokonać. nie wiesz, jak wywoływać w kolejce wywołania funkcji. Po prostu użyłem MSMQ jako przykładu, ponieważ użyłem tego w przeszłości. – Slee

+0

Właśnie ci powiedziałem, jak zrobić kolejkę. :-) Użyj danych podstawowych. Każda uporządkowana kolekcja jest faktycznie kolejką. Pobierz jeden, przetwórz go, usuń. Można nawet wywoływać w kolejce wywołania funkcji, ale prawdopodobnie nie ma takiej potrzeby, ponieważ wątek przetwarzania może wiedzieć, która funkcja wywoływać w oparciu o pobierane dane. –

+0

nic jak przeoczenie oczywiste - dziękuję! – Slee

1

Ta biblioteka obsługuje trwałe kolejkowanie komunikatów w trybie offline w sytuacjach, które opisujesz. Mówi alfa z rok temu, ale potwierdzili, że jest używany w aplikacjach produkcyjnych:

https://github.com/gcamp/IPOfflineQueue

Powiązane problemy