camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From marks1900 <marks1900-u...@yahoo.com.au>
Subject Re: Thread pool profiles - Thread.currentThread().setPriority(MIN_PRIORITY)
Date Fri, 22 Aug 2014 21:17:16 GMT
Though I would just add the current example implementation I am using.  Feel
free to give comments.

RouteBuilder :

> RouteBuilder builder = new RouteBuilder() {
> 	public void configure() {
> 		PriorityThreadFactory highPriorityThreadFactory = new
> PriorityThreadFactory(Thread.MIN_PRIORITY);
> 		ExecutorService recipeDealStoreOfferGeneratorExecutorService =
> Executors.newFixedThreadPool(1, highPriorityThreadFactory);
> 		from("timer://foo?delay=2000&period=1&repeatCount=3")
> 		
> .threads().executorService(recipeDealStoreOfferGeneratorExecutorService)
> 			.process(new Processor() {
> 				@Override
> 				public void process(Exchange exchange) throws Exception {
> 					// Long Running Process
> 
> 					long startTime = System.currentTimeMillis();
> 
> 					Long value = 0L;
> 					while (value < 2000000000L) {
> 						value++;
> 					}
> 					System.out.println("Thread.getPriority(): " +
> Thread.currentThread().getPriority());
> 					System.out.println("Processed in: " + +
> (int)((System.currentTimeMillis()-startTime)/1000.0) + " s");
> 				}
> 			});
> 	}
> };

PriorityThreadFactory:

> public class PriorityThreadFactory implements ThreadFactory {
> 
>     final int priority;
> 
>     public PriorityThreadFactory() {
>         this.priority = Thread.NORM_PRIORITY;
>     }
> 
>     public PriorityThreadFactory(int priority) {
> 
>         if (priority < Thread.MIN_PRIORITY) {
>             this.priority = Thread.MIN_PRIORITY;
>         } else if (priority > Thread.MAX_PRIORITY) {
>             this.priority = Thread.MAX_PRIORITY;
>         } else {
>             this.priority = priority;
>         }
>     }
> 
>     @Override
>     public Thread newThread(Runnable r) {
>         Thread thread = new Thread(r);
>         thread.setPriority(priority);
>         return thread;
>     }
> 
> }





--
View this message in context: http://camel.465427.n5.nabble.com/Thread-pool-profiles-Thread-currentThread-setPriority-MIN-PRIORITY-tp5754039p5755587.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message