У меня есть приложение ASP.NET, которое отправляет электронные письма всякий раз, когда пользователь регистрируется на веб-сайте. Я использую hangfire, чтобы управлять заданиями и почтой, чтобы отправлять электронные письма.Задайте задачу неудачной с использованием Hangfire с помощью ASP.NET?
Это все прекрасно работает, но вот незадача:
Я хочу суперпользователь изменить, сколько раз приложение может отправить по электронной почте перед удалением задания.
Вот мой код
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);
}
}
}
Ну, дело в том, я хочу суперпользователя, чтобы иметь возможность изменить количество попыток. Вот почему я хочу справиться с этим по-своему. – ggderas
Справа. Вы можете создать свой собственный атрибут AutomaticRetry, просмотрев, как автоматически выполнялся автоматическийRetryAttribute, но заменив ваши собственные условия, может быть? –