Package ai.preferred.venom.job
Class LazyScheduler
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractQueue<Job>
-
- ai.preferred.venom.job.AbstractQueueScheduler
-
- ai.preferred.venom.job.LazyScheduler
-
- All Implemented Interfaces:
Scheduler
,java.lang.Iterable<Job>
,java.util.Collection<Job>
,java.util.concurrent.BlockingQueue<Job>
,java.util.Queue<Job>
public class LazyScheduler extends AbstractQueueScheduler
This class provides and implementation of scheduler with a priority sensitive queue and polls from iterator when queue is empty.Jobs in queue will be processed first in order of higher priority, followed by requests in the iterator.
- Author:
- Maksim Tkachenko, Ween Jiann Lee
-
-
Constructor Summary
Constructors Constructor Description LazyScheduler(java.util.Iterator<Request> requests)
Constructs an instance of lazy scheduler without a default handler.LazyScheduler(java.util.Iterator<Request> requests, Handler handler)
Constructs an instance of lazy scheduler with a default handler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(Request r, Handler h, Priority p, Priority pf)
Adds a request to the queue.boolean
isEmpty()
boolean
offer(Job job, long timeout, java.util.concurrent.TimeUnit unit)
Job
poll()
Job
poll(long time, java.util.concurrent.TimeUnit unit)
void
put(Job job)
-
Methods inherited from class ai.preferred.venom.job.AbstractQueueScheduler
add, add, add, add, add, drainTo, drainTo, iterator, offer, peek, remainingCapacity, size, take
-
Methods inherited from class java.util.AbstractCollection
contains, containsAll, remove, removeAll, retainAll, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Constructor Detail
-
LazyScheduler
public LazyScheduler(java.util.Iterator<Request> requests, Handler handler)
Constructs an instance of lazy scheduler with a default handler.- Parameters:
requests
- An iterator to obtain requestshandler
- The default handler to use
-
LazyScheduler
public LazyScheduler(java.util.Iterator<Request> requests)
Constructs an instance of lazy scheduler without a default handler.- Parameters:
requests
- An iterator to obtain requests
-
-
Method Detail
-
add
public final void add(Request r, Handler h, Priority p, Priority pf)
Description copied from interface:Scheduler
Adds a request to the queue.This request would be parsed by the handler specified, and its priority can be downgraded to a minimum priority specified.
- Parameters:
r
- request to fetch when dequeuedh
- handler to be used to parse the requestp
- initial priority of the requestpf
- the minimum (floor) priority of this request
-
poll
public final Job poll()
-
put
public final void put(@Nonnull Job job)
-
offer
public final boolean offer(Job job, long timeout, @Nonnull java.util.concurrent.TimeUnit unit)
-
poll
public final Job poll(long time, @Nonnull java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
-