Jobs
フィールドName
とを持つテーブルがありますStatus
。
新しいレコードのジョブ テーブルをポーリングするために、Tomcat インスタンスに 2 つの個別のアプリケーションをデプロイしようとしていますが、同じジョブ レコードが両方のプロセスで受信されないようにすることが重要です。これどうやってするの?
これまでの私の(失敗した)アプローチは、春の統合を使用することでした:
<int-jdbc:inbound-channel-adapter
query="select * from jobs where status=1"
channel="rawInputDataListChannel"
data-source="dataSource"
update="update input_table set status=2 where status=1">
<int:poller fixed-rate="1">
<int:transactional isolation="READ_COMMITTED" />
</int:poller>
</int-jdbc:inbound-channel-adapter>
これが機能しなかったので、Tomcat にトランザクション マネージャーを配置して、両方のアプリケーションで共有できるようにすればうまくいくのではないかと考えましたが、それを起動して実行するのに苦労しています。このアプローチは機能しますか?