package com.intrbiz.bergamot.queue;
import com.intrbiz.bergamot.model.message.scheduler.SchedulerAction;
import com.intrbiz.bergamot.queue.impl.RabbitSchedulerQueue;
import com.intrbiz.bergamot.queue.key.SchedulerKey;
import com.intrbiz.queue.Consumer;
import com.intrbiz.queue.DeliveryHandler;
import com.intrbiz.queue.QueueAdapter;
import com.intrbiz.queue.QueueManager;
import com.intrbiz.queue.RoutedProducer;
/**
* Send scheduling actiions
*/
public abstract class SchedulerQueue extends QueueAdapter
{
static
{
RabbitSchedulerQueue.register();
}
public static SchedulerQueue open()
{
return QueueManager.getInstance().queueAdapter(SchedulerQueue.class);
}
public abstract RoutedProducer<SchedulerAction, SchedulerKey> publishSchedulerActions(SchedulerKey defaultKey);
public RoutedProducer<SchedulerAction, SchedulerKey> publishSchedulerActions()
{
return this.publishSchedulerActions(null);
}
public abstract Consumer<SchedulerAction, SchedulerKey> consumeSchedulerActions(DeliveryHandler<SchedulerAction> handler);
}