1
私は、ウサギmqを聞いて、入力msgに基づいて挿入/更新操作を行い、それを基礎となるDb2データベースに保持するストリームリスナを持っています。データベースには、週に6時間のダウンタイムがあります。この時間フレーム中にリスナーが実行されないようにスケジュールすることで、入力メッセージを失うことはありません。このmsgは非同期コンテキストのウサギ待ち行列の上流から送信されるので、ダウンタイムの後に再送/再試行するように上流に頼むことはできません。ダウンストリームを避けるためにスプリングストリームリスナをスケジュールする
@StreamListener(target = Sink.INPUT)
public void testListener(byte[] msg)
{
System.out.println(new String(msg));
try{
int count = zoneInsert(mapper.readValue(msg, OrderDTO.class));
System.out.println("inserted "+count+" row");
}catch(Exception e){
e.printStackTrace();
}
}