001package com.thed.zblast.scheduler;
002
003import java.util.concurrent.ArrayBlockingQueue;
004import java.util.concurrent.BlockingQueue;
005import java.util.concurrent.atomic.AtomicInteger;
006
007public class EventProducerTest extends Thread {
008        
009         private final BlockingQueue<ProgressWorkUnit<JobProgressDTO>> queue;
010            private AtomicInteger idGenerator;
011
012            public EventProducerTest(BlockingQueue<ProgressWorkUnit<JobProgressDTO>> queue) {
013                this.queue = queue;
014                idGenerator = new AtomicInteger();
015            }
016
017            @Override
018            public void run() {
019                for (int i = 0; i < 10; i++) {
020                                try {
021                                                Thread.sleep(2000);
022                                        } catch (InterruptedException e1) {
023                                                // TODO Auto-generated catch block
024                                                e1.printStackTrace();
025                                        }
026                                System.out.println("Slepp for 2 seconds... ");
027                    boolean wasAdded = false;
028                    JobProgressDTO eventToAdd = new JobProgressDTO(Long.valueOf(idGenerator.getAndIncrement()), "Job name");
029                    try {
030                        wasAdded = queue.add(new ProgressWorkUnit<>(eventToAdd));
031                    } catch (Exception e) {
032                       System.out.println("Adding Thread was interrupted");
033                    }
034                }
035            }
036            
037            
038            public static void main(String args[]) {
039                        
040                        BlockingQueue<ProgressWorkUnit<JobProgressDTO>> queue = new ArrayBlockingQueue<>(3);
041        
042                        EventProducerTest producer = new EventProducerTest(queue);
043                        JobExecutionProgressConsumer consumer = new JobExecutionProgressConsumer(queue);
044        
045                        producer.start();
046                        consumer.start();
047                
048            }
049
050}