有没有办法根据来自RabbitMQ的消息启动Quartz中的工作并使该消息的内容可用于该作业?
答案 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作业。