ich die folgende Klasse haben, die eine Nachricht auf aws sns Warteschlangen „TryRestart()“ veröffentlicht:Verzögerung basierend auf Ereignissen
internal class SmsReceptionTestRunner : ITestRunner<ConfigurationViaSmsAttempt>
{
private readonly CommunicationClient _communicationClient;
public SmsReceptionTestRunner(CommunicationClient communicationClient)
{
_communicationClient = communicationClient;
}
public Test Execute(ConfigurationViaSmsAttempt MessageType)
{
// publish
_communicationClient.ConfigurationService.TryRestart(MessageType.Imei);
// wait five minutes ...
return new Test("6", "", false, MessageType.TargetApn, MessageType.TargetApn);
}
}
Eine separate Handler-Klasse Pflege der Antwort nimmt, wenn es auf den Warteschlangen veröffentlicht wird - in der Regel Das dauert etwa fünf Minuten - await Task.Delay(TimeSpan.FromMinutes(5));
. Nach den 5 min. wenn keine Nachrichten behandelt wurden gespeichert ich ein neues Test-Set auf false .:
public class RestartViaSmsAttemptHandler : IHandler<RestartViaSmsAttempt>
{
private readonly IRepository<Test> _TestRepository;
public RestartViaSmsAttemptHandler(IRepository<Test> TestRepository)
{
_TestRepository = TestRepository;
}
public bool Handle(RestartViaSmsAttempt message)
{
var test = new Test("6", message.Imei, true, "", "");
_TestRepository.Save(test);
return true;
}
}
ich einen Mechanismus platzieren will die // wait five minutes
Bit verhindern nur, wenn mein Handler bekommt eine Nachricht zurück aus den Warteschlangen zu laufen.
Im Grunde frage ich nach etwas zum Neustart und nach 5 Minuten, wenn es keine Antwort gibt, weiß ich, dass etwas schiefgelaufen ist.
Die Problembeschreibung ist nicht klar. Möchten Sie die Wartezeit von 5 Minuten vorzeitig abbrechen, wenn eine Nachricht eintrifft? Hast du schon etwas probiert? – usr
Ich habe es versucht, indem ich 'aware Task.Delay (TimeSpan.FromMinutes (5));' Überprüfen Sie dann, ob der Test gespeichert wurde, aber ich mag diese Lösung nicht. Ich denke, ich müsste die 5 Minuten irgendwie abbrechen. Ich suche hier ein besseres Design – Rober