30 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { ConnectionFactoryAdapter, ConnectionFactory } from "./connection"
 | 
						|
import { ChannelAwareMessageListenerAdapter, ChannelAwareMessageListener } from "./listener"
 | 
						|
 | 
						|
export const SimpleMessageListenerContainer = org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
 | 
						|
export const AcknowledgeMode: org.springframework.amqp.core.AcknowledgeMode = Java.type('org.springframework.amqp.core.AcknowledgeMode')
 | 
						|
interface ContainerConfig {
 | 
						|
    connectionFactory: ConnectionFactoryAdapter | typeof ConnectionFactory
 | 
						|
    queueNames: string[]
 | 
						|
    messageListener: ChannelAwareMessageListenerAdapter | typeof ChannelAwareMessageListener
 | 
						|
    maxConcurrentConsumers?: number
 | 
						|
    concurrentConsumers?: number
 | 
						|
    acknowledgeMode?: org.springframework.amqp.core.AcknowledgeMode
 | 
						|
}
 | 
						|
 | 
						|
export class MessageListenerContainerAdapter {
 | 
						|
    private _Handler: org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
 | 
						|
    constructor(config: ContainerConfig) {
 | 
						|
        config = { concurrentConsumers: 5, maxConcurrentConsumers: 10, acknowledgeMode: AcknowledgeMode.AUTO, ...config }
 | 
						|
        this._Handler = new SimpleMessageListenerContainer(config.connectionFactory instanceof ConnectionFactoryAdapter ? config.connectionFactory.getHandler() : config.connectionFactory)
 | 
						|
        //@ts-ignore
 | 
						|
        this._Handler.setQueueNames(config.queueNames)
 | 
						|
        this._Handler.setMaxConcurrentConsumers(config.maxConcurrentConsumers)
 | 
						|
        this._Handler.setConcurrentConsumers(config.concurrentConsumers)
 | 
						|
        this._Handler.setAcknowledgeMode(config.acknowledgeMode)
 | 
						|
        this._Handler.setMessageListener(config.messageListener instanceof ChannelAwareMessageListenerAdapter ? config.messageListener.getHandler() : config.messageListener)
 | 
						|
    }
 | 
						|
    getHandler() {
 | 
						|
        return this._Handler
 | 
						|
    }
 | 
						|
} |