javamultithreadingpeoplesoftpeoplesoft-app-engine

Invoking Multiple CI's within PeopleCode using Java Classes


I am trying to upload some data in PeopleSoft and fetching it to the exposed CI through Application Engine.

The Instantiation/GetKeys/Save/Cancel for each row of data takes a lot of time. The closest way to do it is to chunk the data and run parallel processes. Usually there is a limit on the number of processes that we can run at the same time. For example: If the limit is 5, it means we can make the entire process, for uploading each row, by 5 times.

i.e. New Processing Time = Old Processing Time/5;

I can do that, unfortunately, that is not what the users want.

They want it to be blazingly fast. I was hoping to use some Java classes within PeopleCode and see if we can create multiple threads exposing CI per thread. Say, what if we can have 100 threads running at the same time, which could be lot more faster. Does any one has some suggestions on how to incorporate some Java and leverage the features of multithreading.

Thanks for your time in advance!


Solution

  • After discussing it with the architects and getting their feedback. It is absolutely fine to send the messages asynchronously. Instead of making your app engine sleep before everything gets done, we can let the application engine go to success and then we can populate a physical table as we keep consuming the messages and update the state of each row accordingly.

    Thanks for this wonderful community, I hope this thread can help anyone who can be benefited with this approach.