I have an application, it has the simplest form, it reads a large number of phone numbers from the database (about 15 million) and sends each number from one line at a time to the URL for processing. I developed the application as follows:
- mass export of telephone numbers from sql to a text file using SSIS. It is very fast and takes 1 or 2 minutes.
- load numbers into the message queue (I am using MSMQ at the moment).
- Delete messages from the command line application and run a request via http to some service, for example, 3 calls to a phone number and, finally, enter the database.
The problem is that it still takes a long time to complete. MSMQ also has a limit on the size of messages it can receive, and now I have to create multiple message queues. I need a lot of resiliency, but I dare not make a transactional transaction because of performance. I am going to publish a message queue (currently a private queue) to an active directory so that processes can delete it from different systems so that it can complete faster. In addition, my processors reach 100% at runtime, and I modify it to use threadpool at this time. I am ready to research JMS right now if it will handle the queue better. So far, the most efficient part of all processing is the SSIS part.
I would like to hear a better approach to design, especially if you have already processed this volume. I am ready to upgrade to unix or make lisp if it handles this situation better.
Thank.
source
share