まず、Erlangの環境をインストールします
RabbitMQの言語はelarngに基づいています
第二に、設置環境のRabbitMQ
参照してください下に設置のRabbitMQ win10
第三に、プラグインのインストールrabbitmq_delayed_message_exchange
プラグインをダウンロードhttp://www.rabbitmq.com/community-plugins.html (プラグインのバージョンは、バージョンとRabbitMQのと一致する必要があります)
アーカイブは、RabbitMQの下にインストールしたディレクトリのプラグインにアンパックダウンロード
执行RabbitMQの-プラグインはrabbitmq_delayed_message_exchangeを有効にします
スタートRabbitMQの
sprigbootプロジェクトのPOMファイルで、依存性の増加、以下
<依存>
<groupIdを> org.springframework.boot </ groupIdを>
<たartifactId>春・ブート・スタータAMQP </たartifactId>
</依存関係>
application.propertiesで次の構成ファイル
spring.rabbitmq.host = 127.0.0.1
spring.rabbitmq.port = 5672
spring.rabbitmq.username =テスト
spring.rabbitmq.password = 123456
プロジェクトではキューコンフィギュレーションを増加しました
@Component
パブリッククラスRabbitmqConfig {
@Bean
公共CustomExchange delayExchange(){
地図の<string、オブジェクト>引数=新規HashMapの<>();
args.put( "X-遅延型"、 "直接")。
新しいCustomExchange( "test_exchange"、 "X-遅延メッセージ"、真、偽、引数)を返します。
}
@Bean
パブリックキューキュー(){
キューキュー=新しいキュー( "TEST_QUEUEという"、TRUE)。
キューを返します。
}
@Bean
公共結合結合(){
リターンBindingBuilder.bind(キュー())に(delayExchange())を有する( "TEST_QUEUEという")noargs()。。。。
}
}
第五に、メッセージリスナクラスを作成
@Component
パブリッククラスMessageReceiver {
@RabbitListener(キュー= "TEST_QUEUEという")
公共ボイド受信(文字列MSG){
てSimpleDateFormatてSimpleDateFormat SDF新しい新=( "MM-DD-YYYY HH:MM:SS");
のSystem.out.println( "メッセージを受信:" + sdf.format(新しい新しいA日付()));
のSystem.out.println( "受信メッセージ:" + MSG);
}
}
5つの単位遅延テストメッセージの効果
@RunWith(SpringRunner.class)
@SpringBootTest
パブリッククラスRabbitmqApplicationTests {
@Autowired
プライベートMessageServiceImpl messageService。
@Test
ます。public voidセンド(){
messageService.sendMsg( "test_queue_1"、 "こんにちは、私は遅延MSGです");
}