我将骆驼 sql 组件配置为从数据库表中读取数据。当我一次读取一行时,我有“onConsume”参数工作,但当我尝试使用“maxMessagesPerPoll”一次读取多行时不起作用。这是我尝试过的...
工作:当我一次读取一行并使用 onConsume 更新该行时。
我的消费者端点 uri 看起来像:
sql:select * from REPORT where IS_VIOLATED != 'N' and TYPE = 'Provisioning'?consumer.delay=1000&consumer.onConsume=update REPORT set IS_VIOLATED = 'N' where REPORT_ID =:#REPORT_ID
不工作:当我配置骆驼的 sql 组件以读取可配置的行时(使用“maxMessagesPerPoll”)。它一次读取多行,但 onConsume 似乎不起作用。我试图告诉骆驼使用 IN 运算符并使用 IN 子句的值数组设置标题值(REPORT_ID)。
我的消费者端点 uri 现在看起来像:
sql:select * from REPORT where IS_VIOLATED != 'N' and TYPE = 'Provisioning'?consumer.delay=1000&maxMessagesPerPoll=3&consumer.useIterator=false&consumer.onConsume=update REPORT set IS_VIOLATED = 'N' where REPORT_ID in(:#REPORT_ID)
我可能在这里做错了什么。我已经对此进行了足够的搜索,并找到了相关的 post1,post2。但这并没有让我走上正确的道路。
我需要能够将所有消耗的行标记为 IS_VIOLATED = 'N' 。
谢谢你的帮助。