Ich habe eine ASP.NET App, die E-Mails sendet, wenn der Benutzer sich auf der Website anmeldet. Ich benutze Hangfire, um die Jobs zu verwalten und postalisch, um E-Mails zu senden.Legen Sie fest, dass ein Auftrag mit Hangfire mit ASP.NET fehlgeschlagen ist.
Es funktioniert alles gut, aber hier ist das Ding:
ich der Superuser ändern möchten, wie oft die APP die E-Mail vor dem Löschen den Job senden.
Hier ist mein Code
public static void WelcomeUser(DBContexts.Notifications not)
{
try{
var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
var engines = new ViewEngineCollection();
engines.Add(new FileSystemRazorViewEngine(viewsPath));
Postal.EmailService service = new Postal.EmailService(engines);
WelcomeUserMail welcomeUserMail = new WelcomeUserMail();
welcomeUserMail.To = not.ReceiverEmail;
welcomeUserMail.UserEmail = not.ReceiverEmail;
welcomeUserMail.From = BaseNotification.GetEmailFrom();
service.Send(welcomeUserMail);
}
catch(Exception e)
{
DBContexts.DBModel dbModel = new DBModel();
DBContexts.Notifications notificacionBD = dbModel.Notifications.Find(not.NotificationID);
notificacionBD.Status = false;
notificacionBD.Timestamp = DateTime.Now;
notificacionBD.Error = e.Message;
int numberOfRetriesAllowed = ParameterHelper.getNumberOfRetriesAllowed();
if (notificacionBD.Retries > numberOfRetriesAllowed)
{
//In this case Hangfire won't put this job in the failed section but rather in the processed section.
dbModel.SaveChanges();
}
else
{
notificacionBD.Retries++;
dbModel.SaveChanges();
throw new Exception(e.Message);
}
}
}
Nun, Punkt ist, ich die Super-User wollen die Anzahl der Versuche zu dürfen, ändern. Deshalb möchte ich auf meine Art damit umgehen. – ggderas
Rechts. Sie können Ihr eigenes AutomaticRetry-Attribut erstellen, indem Sie überprüfen, wie das AutomaticRetryAttribute ausgeführt wurde, aber vielleicht durch Ihre eigenen Bedingungen ersetzen? –