Obecnie pracuję nad projektem o określonych wymaganiach. Krótki przegląd z nich są następujące:Wyzwalacze zdarzeń oparte na zegarach
- Dane są pobierane z serwisów internetowych zewnętrznych
- Dane są przechowywane w SQL 2005
- Dane są manipulowane poprzez web GUI
- usługa Windows, który komunikuje się z Usługi sieciowe nie mają sprzężenia z naszym wewnętrznym interfejsem internetowym, z wyjątkiem bazy danych.
- Komunikacja z usługami sieciowymi musi odbywać się zarówno w czasie, jak i wyzwalana interwencją użytkownika w interfejsie internetowym.
Bieżący (przedprodukcyjny) model wyzwalania komunikacji usług sieciowych jest uzyskiwany za pośrednictwem tabeli bazy danych, która przechowuje żądania wyzwolenia wygenerowane w wyniku interwencji ręcznej. Naprawdę nie chcę mieć wielu mechanizmów wyzwalania, ale chciałbym móc zapełnić tabelę bazy danych wyzwalaczami w oparciu o czas wywołania. Jak widzę, są na to dwa sposoby.
1) Dostosuj tabelę wyzwalacza, aby zapisać dwa dodatkowe parametry. Jedna z nich "Czy to jest oparte na czasie czy ręcznie dodane?" oraz pole zerowe do przechowywania szczegółów pomiaru czasu (dokładny format do ustalenia). Jeśli jest wyzwalaczem utworzonym ręcznie, oznacz go jako przetworzony, gdy wyzwalacz został uruchomiony, ale nie, jeśli jest wyzwalaczem czasowym.
lub
2) Utwórz drugą usługę systemu Windows, która tworzy wyzwalacze w locie w określonych odstępach czasu.
Druga opcja wydaje mi się krówką, ale zarządzanie opcją 1 może łatwo przerodzić się w koszmar programowania (skąd wiadomo, czy ostatnia ankieta tabeli zwróciła wydarzenie, które musi wystrzelić, i jak następnie przerywasz ponowne wywoływanie w następnym sondowaniu)
Byłbym wdzięczny, gdyby ktoś mógł poświęcić kilka minut, aby pomóc mi zdecydować, która trasa (jedna z tych dwóch lub ewentualnie trzecia, niepubliczna) do podjęcia .