(root)/ – Rev 37082
Rev 37081 |
Rev 37083 |
Go to most recent revision |
Last modification |
Compare with Previous |
View Log
| RSS feed
Last modification
- Rev 37082 2026-07-14 13:49:19
- Author: amit
- Log message:
- Fix noon price-drop lock storm + wallet-rollback divergence
Per-drop transaction isolation for the noon price-drop reprocess, mirroring
the offer batch pattern (OfferBatchService / OfferProcessingHelper):
- PriceDropProcessingHelper: readOnly id fetch + REQUIRES_NEW per-drop
reprocess (processPriceDrop) + markItemSuccess
- PriceDropBatchService: no-@Transactional orchestrator - fetch ids,
createBatch, per-drop loop with markItemFailed, finalizeBatch
Previously the whole reprocess ran under ScheduledTasks' class-level
@Transactional as one ~20-min transaction, holding user_wallet
PESSIMISTIC_WRITE locks for the entire run and timing out live
/addAmountToWallet, /create-order and /scanSerialized at noon
(LockAcquisitionException).
Also narrow the rollback catch in PriceDropServiceImpl from Exception to
ProfitMandiBusinessException: lock/DB failures now propagate and roll back
the drop's REQUIRES_NEW unit (stays APPROVED, retried next run) instead of
being swallowed while the IMEI is marked REJECTED with the payout still in
the partner's wallet.