0
有沒有一種方法可以根據來自RabbitMQ的消息啓動Quartz中的作業,並使該消息的內容可用於作業?Quartz Scheduler和RabbitMQ
有沒有一種方法可以根據來自RabbitMQ的消息啓動Quartz中的作業,並使該消息的內容可用於作業?Quartz Scheduler和RabbitMQ
我不知道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");
//...
}
請注意,您不能「啓動」a工作,你只能安排它在將來運行一段時間(在這個例子中它會盡快運行 - startNow()
)。