![JAR search and dependency download from the Maven repository](/logo.png)
jadex.micro.producerconsumer.ConsumerAgent Maven / Gradle / Ivy
The newest version!
package jadex.micro.producerconsumer;
import jadex.core.IComponent;
import jadex.execution.IExecutionFeature;
import jadex.future.FutureBlockingQueue;
import jadex.micro.annotation.Agent;
import jadex.model.annotation.OnStart;
@Agent
public class ConsumerAgent
{
protected FutureBlockingQueue queue;
protected long maxdelay;
public ConsumerAgent(FutureBlockingQueue queue)
{
this(queue, 2000);
}
public ConsumerAgent(FutureBlockingQueue queue, long maxdelay)
{
this.queue = queue;
this.maxdelay = maxdelay;
}
@OnStart
protected void start(IComponent agent)
{
while(true)
{
System.out.println(agent.getId()+" fetch item");
R elem = queue.dequeue().get();
System.out.println(agent.getId()+" received item: "+elem);
long delay = (long)(Math.random()*maxdelay);
System.out.println(agent.getId()+" waiting: "+delay);
agent.getFeature(IExecutionFeature.class).waitForDelay(delay).get();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy