[
https://issues.apache.org/jira/browse/FINERACT-428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16577849#comment-16577849
]
ASF GitHub Bot commented on FINERACT-428:
-----------------------------------------
Github user santoshconflux commented on the issue:
https://github.com/apache/fineract/pull/469
Hi Santosh!
Ticket, Fineract-428 will have multiple PRs since it takes into account all
jobs intended for parallelizing and paging. Each job will have a separate PR
Hope it answers your question.
Regards,
Kumaranath Fernando
On Mon, Aug 13, 2018 at 10:57 AM, Santosh Math <
[email protected]> wrote:
> Hi Kumarnath,
>
> There is one more PR for same ticket , Fineract-428?
>
> https://github.com/apache/fineract/pull/464
>
> On Sat, Aug 11, 2018 at 10:14 PM, Kumaranath Fernando <
> [email protected]> wrote:
>
> > Fineract-428 <https://issues.apache.org/jira/browse/FINERACT-428>
> >
> > Parallelizing and paging of periodic accrual
> > ------------------------------
> > You can view, comment on, or merge this pull request online at:
> >
> > https://github.com/apache/fineract/pull/469
> > Commit Summary
> >
> > - Implementing parallelizing and paging of recalculate interest for
> > loans
> >
> > File Changes
> >
> > - *A* fineract-provider/src/main/java/org/apache/fineract/
> > infrastructure/jobs/domain/JobParameter.java
> > <https://github.com/apache/fineract/pull/469/files#diff-0> (84)
> > - *A* fineract-provider/src/main/java/org/apache/fineract/
> > infrastructure/jobs/domain/JobParameterRepository.java
> > <https://github.com/apache/fineract/pull/469/files#diff-1> (32)
> > - *M* fineract-provider/src/main/java/org/apache/fineract/
> > infrastructure/jobs/service/JobRegisterServiceImpl.java
> > <https://github.com/apache/fineract/pull/469/files#diff-2> (26)
> > - *M* fineract-provider/src/main/java/org/apache/fineract/
> > portfolio/loanaccount/service/LoanReadPlatformService.java
> > <https://github.com/apache/fineract/pull/469/files#diff-3> (3)
> > - *M* fineract-provider/src/main/java/org/apache/fineract/
> > portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
> > <https://github.com/apache/fineract/pull/469/files#diff-4> (46)
> > - *M* fineract-provider/src/main/java/org/apache/fineract/
> > portfolio/loanaccount/service/LoanSchedularService.java
> > <https://github.com/apache/fineract/pull/469/files#diff-5> (7)
> > - *M* fineract-provider/src/main/java/org/apache/fineract/
> > portfolio/loanaccount/service/LoanSchedularServiceImpl.java
> > <https://github.com/apache/fineract/pull/469/files#diff-6> (155)
> > - *A* fineract-provider/src/main/java/org/apache/fineract/
> > portfolio/loanaccount/service/RecalculateInterestPoster.java
> > <https://github.com/apache/fineract/pull/469/files#diff-7> (152)
> > - *A* fineract-provider/src/main/resources/sql/migrations/core_
> > db/V344__parallelizing_and_paging_recalculate_interest_
> > for_loans_job.sql
> > <https://github.com/apache/fineract/pull/469/files#diff-8> (33)
> >
> > Patch Links:
> >
> > - https://github.com/apache/fineract/pull/469.patch
> > - https://github.com/apache/fineract/pull/469.diff
> >
> > —
> > You are receiving this because you are subscribed to this thread.
> > Reply to this email directly, view it on GitHub
> > <https://github.com/apache/fineract/pull/469>, or mute the thread
> > <https://github.com/notifications/unsubscribe-
> auth/AV9MS_TwImbrVWDae6Aas7_sNv9zpke0ks5uPwoGgaJpZM4V5OxW>
> > .
> >
>
>
>
> --
> Thanks & Regards
>
> Santosh Math
>
> *QA Engineer*
>
> *Conflux Technologies Pvt Ltd <http://www.confluxtechnologies.com/>*
> | *Office*: +91-080-41208662 |
>
> *Address*: #304, 2nd Floor, 7th Main Road, HRBR Layout 1st Block,
> Bengaluru, Karnataka, 560043 INDIA
>
> Parallelization of Jobs
> -----------------------
>
> Key: FINERACT-428
> URL: https://issues.apache.org/jira/browse/FINERACT-428
> Project: Apache Fineract
> Issue Type: Improvement
> Components: Loan, Savings
> Affects Versions: 1.1.0
> Reporter: Avik Ganguly
> Assignee: Markus Geiss
> Priority: Major
> Labels: gsoc, p2, performance
> Fix For: 1.2.0
>
>
> For starters, it will be useful to have some technical configuration added as
> job parameter for each of the below jobs, that is batch size and thread pool
> size for executor service so this has a dependency on FINERACT-425.
> Add migration script to add those 2 configurations to each of the following
> jobs with the value of batch size being 500 and thread pool size being 16 :-
> Add Accrual Transactions
> Add Periodic Accrual Transactions
> Add Accrual Transactions For Loans With Income Posted As Transactions
> Generate Loan Loss Provisioning
> Post Interest for Savings
> Update Loan Summary
> This would require separation of core functionality to a separate class.
> Simplified example :-
> ```
> final ExecutorService executor = Executors.newFixedThreadPool(threadPoolSize);
>
> final LocalDate dueDate = DateUtils.getLocalDateOfTenant();
> final Collection<LoanAccountData> loansToBeRepaidData =
> this.loanReadPlatformService
> .retrieveLoansToBeRepaidFromAdvancePayment(dueDate);
> Iterable<List<LoanAccountData>> loansToBeRepaid =
> Iterables.partition(loansToBeRepaidData, batchSize);
> final Authentication authentication =
> SecurityContextHolder.getContext().getAuthentication();
> List<Callable<Object>> advancePaymentPosters = new
> ArrayList<Callable<Object>>();
>
> for (List<LoanAccountData> subList : loansToBeRepaid) {
> AdvancePaymentPoster poster = (AdvancePaymentPoster)
> this.applicationContext.getBean("advancePaymentPoster");
> poster.setLoans(subList);
> poster.setTenant(ThreadLocalContextUtil.getTenant());
> poster.setAuthentication(authentication);
> poster.setCommandService(commandService);
> advancePaymentPosters.add(Executors.callable(poster));
> }
> try {
> List<Future<Object>> responses =
> executor.invokeAll(advancePaymentPosters);
> for(Future f : responses) {
> f.get();
> }
> } catch (InterruptedException e1) {
> e1.printStackTrace();
> }
>
> executor.shutdown();
> ```
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)