Как обрабатывать объекты Java, когда они получены из канала - PullRequest
0 голосов
/ 12 июня 2018

Я хочу отправить сериализованные объекты Java удаленному клиенту RabbitMQ.Мне интересно, каковы лучшие практики, когда объект получен и должен быть обработан.Я попробовал этот код:

channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, null, SerializationUtils.serialize(new SomecustomObj()));

Java-код для обработки логики получения:

public QueueConsumer() throws Exception {

        try {
            Consumer consumer = new DefaultConsumer(channel) {
                @Override
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
                        byte[] body) throws IOException {
                    traslateObj(SerializationUtils.deserialize(body));
                }
            };
            channel.basicConsume(QUEUE_NAME, true, consumer);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void traslateObj(Object obj) {      
        if (obj instanceof TransactionsBean) {
            /// do something
        }
        if (obj instanceof NotesBean) {
            /// do something
        }       
    }

Можете ли вы поделиться своим опытом, лучше ли использовать instanceof для навигации по Java?объект для соответствующей обработки или каким-либо другим способом, например, используя HashMap с ключом и пользовательским объектом.

Можете ли вы поделиться некоторыми идеями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...