有没有办法根据来自 RabbitMQ 的消息在 Quartz 中启动工作,并使消息的内容可用于工作?
问问题
2819 次
2 回答
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");
//...
}
请注意,您不能“启动”作业,您只能安排它在未来某个时间运行(在示例中它将尽快运行 - startNow()
)。
于 2012-10-02T07:27:15.667 回答
0
我不明白为什么不...您可以订阅 RabbitMQ 队列,当消息到达时您可以做任何事情,包括触发 Quartz.NET 作业。
于 2019-02-22T12:19:28.493 回答