To, co obecnie mam, można podsumować za pomocą tego pseudo kodu:
public static void Main(string[] args)
{
var listOfObjects = Database.GetObjectsToUploadToOnlineService();
Parallel.ForEach(Upload)
}
private static void Upload(MyUploadObject obj)
{
//Build object (takes a few milliseconds)
//Format to JSON (takes a few more milliseconds)
//Upload (can take up to a max of 10 minutes)
//Wait for a response (can take up to a max of 10 minutes)
//Save response to our database (takes a few milliseconds)
}
Ten program jest właśnie skonfigurowany na naszym serwerze jako zaplanowane zadanie. Jesteśmy właścicielem programu i możemy z nim robić, co chcemy. Moje pytanie pochodzi z bloga na temat przeprowadzania automatycznych kontroli monitorowania (nie mam przydatnego linku).
To sprawiło, że pomyślałem: jak, u licha, mogę zmodyfikować swój program, aby uruchomić inny program „monitorujący”? A może powinna to zmienić się z programu konsolowego na program ukryty WPF ?
Ogólnie wolałbym móc po prostu uruchomić program na moim komputerze, który sprawdza postęp programu przez sieć, więc nie muszę RDP na serwerze, aby sprawdzić jego status (ale nie zrobiłby tego być końcem świata).
Ogólnie rzecz biorąc, sądzę, że chciałbym zobaczyć okno, które mówi coś w stylu: Przetwarzaj x y jak dotąd, przetwarzane są następujące elementy. Wymień elementy w tabeli, na przykład „Prześlij” lub „Oczekiwanie na odpowiedź”. Może gdybym zwariował, mógłbym również zrobić kolejkę nieudanych przedmiotów (ale to byłoby dodatkowe).
Mój umysł wciąż skłania się ku zdarzeniu, ale nie mogę zrozumieć, jak uruchomiłbym program, który może subskrybować i wypisać się z uruchomionego programu. Czy to w ogóle możliwe?