Шаг1:
- Когда заказ создан, приложение необходимо отправить по электронной почте для всех связанных контактов.
Добавить 2 новых столбца в таблицу контактов (или аналогичную таблицу).
is_Send_Email -> логического типа
Email_Send_Time -> метка времени/даты Тип
В то время как вставки новая строка (создаются новый порядок), установить is_Send_Email = истинный и Email_Send_Time = текущего времени , для все связанные с нами контакты.
2.Когда новый Контакт создается и подключается к уже созданному Заказу, этот Контакт также должен получить электронное письмо.
При добавлении контакта в порядке, установленном is_Send_Email = верно и Email_Send_Time = Текущее время (при вставке) для вновь добавленных контактов.
3.Когда срок действия истекает, 2 дня спустя Контакт должен получить электронное письмо.
Set is_Send_Email = верно для всех контактов в истекающий порядке и Email_Send_Time = Текущее время + 2 дня.
Шаг2:
Включение планирования с использованием @EnableScheduling в классе конфигурации.
@Configuration
@EnableScheduling
public class AppConfig {
@Bean
public MyBean bean() {
return new MyBean();
}
}
Step3:
Использование @Scheduled аннотаций для вызова почты метод отправки через определенные промежутки времени.
В соответствии с Spring documentation ..
34.4.2 @Scheduled аннотаций
@Scheduled аннотации могут быть добавлены к способу наряду с триггерной метаданных.
Например, следующий метод будет вызываться каждые 5 секунд с фиксированной задержкой, что означает, что период будет измерен со времени завершения каждого предыдущего вызова.
@Scheduled(fixedDelay=5000) public void doSomething() {
// something that should execute periodically
}
Если выполнение фиксированной скорости требуется, просто изменить имя свойства указанного в аннотации. Следующие будут выполняться каждые 5 секунд, измеренных между последовательными временами запуска каждого вызова .
@Scheduled(fixedRate=5000) public void doSomething() {
// something that should execute periodically
}
Для задач фиксированной задержки и фиксированной скорости, начальная задержка может быть указано, указывающее количество миллисекунд ожидания перед первого выполнения метода.
@Scheduled(initialDelay=1000, fixedRate=5000) public void
doSomething() {
// something that should execute periodically
}
Если простые периодические планирования не является достаточно выразительным, то может быть обеспечено выражение хрон . Например, следующее будет выполнять только в будние дни.
@Scheduled(cron="*/5 * * * * MON-FRI") public void doSomething() {
// something that should execute on weekdays only
}
[Подсказка] Вы можете дополнительно использовать зоны атрибут указать зону времени , в котором будет решена выражение хрон. Обратите внимание, что у запланированных методов должно быть пустое значение и не должно быть никаких аргументов. Если метод должен взаимодействовать с другими объектами из контекста приложения , то обычно они были бы предоставлены через инъекцию зависимостей .
Step4:
Проверьте каждую запись в таблице Order, если is_Send_Email = верно для записи, а затем запустить электронную почту для этого заказа/Контакты любыми.
Как отправить электронное письмо с использованием Spring, вы можете обратиться к этому article.
Счастливый обучения :-)
Чтобы отправить электронную почту с помощью SpringBoot можно также рассчитывать на [эту библиотеку] (https://github.com/ozimov/spring-boot-email-tools) – JeanValjean
@Mary, пожалуйста примите этот ответ, если это поможет. –