- Time based event.
- Selection of suitable users.
- Selection of bank transactions/statements (in many threads).
- Currency selection from DB (4.1 if currency is not available in DB, then it should located on 3rd part service)
- Upload to transactions/statements storage/service.
- Updated DB.
Supported banks:
- Java 17
- Gradle 4 or more
- Docker 18.06.0+ and Docker-compose(3.7) 1.21+
To build (gradle push docker-compose with all params to server):
- Copy
gradle.properties.templatetogradle.propertieswherePB_SSH_HOSTandPB_SSH_USER- credentials for ssh login - Run:
./gradlew clean buildto build application - Copy
variables.env.templatetovariables.env- settings for app in docker container;./gradlew upladComposeFileToServer- to push docker files to server
On prod app is running in docker container check docker-compose.yml, watchtower container is used for
auto-updates for the main container.
To avoid JVM out of memory error in docker container app must be executed in swarm mode in order to set docker memory. Also it will be nice to have swap on the target system.
Very basis expiation of the OOM problem
Swarm commands:
-
docker stack rm sync- remove docker stack called sync -
docker service logs sync_pb-integration- show logs for one the stack containers -
docker stack deploy -c docker-compose.yml sync- run docker stack called sync
INSERT INTO MERCHANT_INFO_ADDITIONAL_COMMENT ( MERCHANT_INFO_ID , ADDITIONAL_COMMENT ) VALUES ( 1, 'NBU_PREV_MOUTH_LAST_BUSINESS_DAY')
