Quartz Scheduler和RabbitMQ

时间:2012-10-01 22:19:13

标签: rabbitmq quartz-scheduler

有没有办法根据来自RabbitMQ的消息启动Quartz中的工作并使该消息的内容可用于该作业?

2 个答案:

答案 0 :(得分:0)

我不知道RabbitMQ,但这是一个基本代码:

QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());

你按照以下方式安排工作:

JobDetail job1 = newJob(MessageJob.class)
    .usingJobData("message", message)
    .build();

Trigger trigger = newTrigger()
    .startNow()
    .build();

MessageJob内找回它:

public class MessageJob implements Job {

    @Override
    public void execute(final JobExecutionContext context) throws JobExecutionException {
        final String message = context.getJobDetail().getJobDataMap().getString("message");
        //...
    }

请注意,你不能“启动”一项工作,你只能安排它在将来运行一段时间(例如它会尽快运行 - {{1} })。

答案 1 :(得分:0)

我不明白为什么不...您可以订阅RabbitMQ队列,并且当消息到达时,您可以执行任何操作,包括触发Quartz.NET作业。