@Override
    public void run() {
        do {
        // Keep working on tasks
            if(null != rateGuaranteedJob)
                task = taskScheduler.nextTask(rateGuaranteedJob);
            else
                task = taskScheduler.nextTask();

            if(null == task) {
                addExclusiveJob(null);
            }

            if(task != null && !task.isComplete()) {
                percentComplete = 0;
                long size = task.getTaskWorkLoad();

                try {
                    for(int i=1;i<=size;i++) {
                        Thread.sleep(1000);
                        percentComplete = 100 * i/(size);
                    }
                    task.setComplete();
                }catch(InterruptedException ix) {
                    System.out.println(ix);
                }
            }
        try {
            Thread.sleep(200);
        }catch(InterruptedException ix) {
            ix.printStackTrace();
        }
        }while(true);
    }