Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
37361 50 d 6 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Mail outbox: one transaction per mail, retry once more, stable Message-ID

processPendingMails ran the whole batch in a single REQUIRES_NEW transaction, so a
crash mid-batch rolled back the status of every mail already delivered in that cycle
and the next run re-sent them.

- Split into selectPendingIds (read-only) plus sendOne per mail, each REQUIRES_NEW via
a @Lazy self-reference so the proxy actually applies. Outcome is committed as soon
as it is known; a crash now loses at most the mail in flight.
- MailOutbox.selectPending retries FAILED rows once more (retryCount < 2).
- Stable per-row Message-ID so a retry arrives as the same message and the receiving
server can collapse it instead of showing a duplicate.
 
36399 164 d 11 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked  
36250 179 d 18 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Sender-type-aware mail cleanup: 6 months for SendGrid/Relay, 1 month for Google SMTP  
36249 179 d 19 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/mail/ Route all SendGrid mail through Google Workspace Relay  
36245 179 d 19 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/mail/ Add Google Workspace SMTP Relay as third mail sender (RELAY) alongside SendGrid and Google  
36067 196 d 13 h aman /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Fix:Duplicate Mail Sending issue and bug fixing  
36059 197 d 7 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Fix mail outbox: load by ID instead of selectPending filter to prevent cascade failure  
35960 215 d 13 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/mail/ MailOutboxService: dev recipient guard (no mail to real users in non-prod), fix self-invocation for @Async/@Transactional via @Lazy self-proxy  
35956 215 d 13 h amit /trunk/profitmandi-dao/src/main/ Mail outbox pattern: persist mail in transaction, send async after commit. Fixes lock contention between /cancelOrder and /om/addBillingDetailsForGrouppedOrders caused by SMTP calls inside transactions holding DB locks.