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 に答える