ColdFusionゲートウェイを使用して多数のアクションを実行し、忘れてしまいます。これを行うには、最後にSendGatewayMessage()
というクエリを実行するループがあります。ただし、ループするクエリは非常に大きくなる可能性があります。 (100.000+レコード)キューより先のキュー
アクションが失われないように、キューサイズとスレッド数を増やしました。
アクションはまだ失われてしまったので、私はそうのようなSendGatewayMessage()
前にループが含まれていました。
<cfloop condition="#gatewayService.getQueueSize()# GTE #gatewayService.getMaxQueueSize()#">
<cfset guardianCount = guardianCount+1>
</cfloop>
<cflog file="gatewayGuardian" text="#i# waited for #guardianCount# iterations. Queuesize:#gatewayService.getQueueSize()#">
<cfset SendGatewayMessage("EventGateway",eventData)>
(GatewayServiceのクラスhereの詳細情報)
を私ができるので、これは、多かれ少なかれ許容され要求のタイムアウトを数時間に増やしてください(!)。しかし、私は依然として、メッセージのキューへの送信を遅くするより効果的な方法を探しています。サーバ。
提案がありますか? 待ち行列のサイズをさらに増やすことの結果について考えてみましょうか?
私は処理しているデータの量を減らす方法を探しています。 –
@DanBracukそれはもちろん、最適だろう。しかし、処理するデータの量は実際には交渉可能ではありません...私はそれをカットしようとする可能性がありますが、私がやろうとしている主なことは、 – Sander
本当に 'gatewayService'を変更できない場合は、ここではあまりできません。あなたは ' 'に変更することができますが、それは大きな違いがあるとは思えません –