Adds DiscardPolicy to threadpoolexecutor (instead of default) to prevent rejected execution exceptions from ending queue consumption.  Also added a try catch block to prevent any other unexpected errors from doing the same.  Finally - a minor tweak to the logic in the main execution loop to ensure the thread pool queue does not  take on more items than it can currently process with the max workers allocated to it.