Incentive Disbursement Process
Dependencies:
This process sends incentive (mobile cash) to caregivers. IncentiveStatusPusherJob.java runs every 20 minutes, fetches 200 'AVAILABLE' transactions from the database, marks them as 'DISPATCHED,' and sends them to ITS via a REST API. ITS returns a transaction ID, system updates the status to 'WAITING,' and stores the ID in the database.
Another job i.e. IncentiveStatusUpdaterJob.java runs every 30 minutes, retrieves 'WAITING' transactions from the database, queries ITS for the final status using the transaction ID, and updates the status accordingly.
Schedule:
This job is scheduled to run after each 20 minutes.
| Job Name | Schedule |
|---|---|
| IncentiveStatusPusherJob.java | Every 20 mins |
| IncentiveStatusUpdaterJob.java | Every 30 mins |
Schema:
Below are the key table(s) used by incentive disbursement process:
- visitincentive
Dependencies:
- IncentiveUtils.java::sendIncentive()
- IncentiveUtils.java::getIncentiveStatus()
Process Flow:
