Refine search
@Override public void run(SourceContext<OUT> ctx) throws Exception { while (running) { QueueingConsumer.Delivery delivery = consumer.nextDelivery(); synchronized (ctx.getCheckpointLock()) { OUT result = schema.deserialize(delivery.getBody()); if (schema.isEndOfStream(result)) { break; } if (!autoAck) { final long deliveryTag = delivery.getEnvelope().getDeliveryTag(); if (usesCorrelationId) { final String correlationId = delivery.getProperties().getCorrelationId(); Preconditions.checkNotNull(correlationId, "RabbitMQ source was instantiated " + "with usesCorrelationId set to true but a message was received with " + "correlation id set to null!"); if (!addId(correlationId)) { // we have already processed this message continue; } } sessionIds.add(deliveryTag); } ctx.collect(result); } } }
@Override public void handleDelivery( String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body ) { this._queue.add(new Delivery(envelope, properties, body)); }
public static void main(String[] argv) throws IOException, InterruptedException, TimeoutException { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("127.0.0.1"); // 打开连接和创建频道,与发送端一样 Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); // 声明队列,主要为了防止消息接收者先运行此程序,队列还不存在时创建队列。 channel.queueDeclare(QUEUE_NAME, false, false, false, null); // 创建队列消费者 QueueingConsumer consumer = new QueueingConsumer(channel); System.out.println(" [*] Waiting for messages. To exit press CTRL+C"); // 指定消费队列 channel.basicConsume(QUEUE_NAME, true, consumer); while (true) { // nextDelivery是一个阻塞方法(内部实现其实是阻塞队列的take方法) QueueingConsumer.Delivery delivery = consumer.nextDelivery(); String message = new String(delivery.getBody()); System.out.println(" [x] Received '" + message + "'"); } } }
public static void main(String[] args) throws Exception { Channel channel = AMQPCommon.connect(); QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicQos(1); channel.basicConsume("trade.eq.q", false, consumer); while (true) { QueueingConsumer.Delivery msg = consumer.nextDelivery(); System.out.println("message received: " + new String(msg.getBody())); Thread.sleep(2000); channel.basicAck(msg.getEnvelope().getDeliveryTag(), false); } } }
String routingKey = ""; channel.exchangeDeclare(exchangeName, type, durable); channel.queueDeclare(queueName, durable, exclusive, autoDelete, null); channel.queueBind(queueName, exchangeName, routingKey); QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicQos(getPrefetchCount()); channel.basicConsume(queueName, autoAck, consumer); try { QueueingConsumer.Delivery delivery; delivery = consumer.nextDelivery(DELIVERY_WAIT_TIMEOUT); if(null == delivery) continue; byte[] bobyByte = delivery.getBody(); String bodyStr = new String(bobyByte, this.getEncoding());//"US-ASCII", "utf-8" channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); _logger.debug("ack meg:" + delivery.getEnvelope().getDeliveryTag()); channel.basicReject(delivery.getEnvelope().getDeliveryTag(), true);
public void execute() throws Exception { Channel channel = AMQPCommon.connect(); QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicConsume("workflow.q", true, consumer); while (true) { QueueingConsumer.Delivery message = consumer.nextDelivery(); String msg = new String(message.getBody()); System.out.println("message received: " + msg); String newMsg = msg.substring(0, msg.indexOf(" shares")); byte[] bmsg = newMsg.getBytes(); System.out.println("Trade fixed: " + newMsg); channel.basicPublish("", "trade.eq.q", null, bmsg); } }
public static void main(String[] args) throws Exception { Channel channel = AMQPCommon.connect(); QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicConsume("music.q", true, consumer); while (true) { QueueingConsumer.Delivery msg = consumer.nextDelivery(); System.out.println("PROCESSING MUSIC ORDER: " + new String(msg.getBody())); Thread.sleep(2000); } } }
try { _Channel.exchangeDeclarePassive(_ExchangeName); _QueueName = _Channel.queueDeclare().getQueue(); _Channel.queueBind(_QueueName, _ExchangeName, topic); _Consumer = new QueueingConsumer(_Channel); _Channel.basicConsume(_QueueName, false, _Consumer); }catch( Exception ex ) { delivery = _Consumer.nextDelivery(); _CounterGroup.incrementAndGet(RabbitMQConstants.COUNTER_GET); Map<String, String> properties = RabbitMQUtil.getHeaders(delivery.getProperties()); Event event = new SimpleEvent(); event.setBody(delivery.getBody()); event.setHeaders(properties); _Channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); _CounterGroup.incrementAndGet(RabbitMQConstants.COUNTER_ACK); } catch(Exception ex){
channel.basicPublish("", queueName, null, msg.getBytes()); } else { if (routingKey != null) { exchangeName = "topic-exchange"; channel.basicPublish(exchangeName, routingKey, null, msg.getBytes()); exchangeName = "subscriber-exchange"; channel.basicPublish(exchangeName, "", null, msg.getBytes()); queueName = "ConsumerProxy"; QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicConsume(queueName, true, consumer); QueueingConsumer.Delivery delivery = consumer.nextDelivery(); String message = new String(delivery.getBody()); System.out.println("[x] received '" + message + "'");
channel = conn.createChannel(); if (Visage.debug) Visage.log.finer("Setting up queue '"+queue+"'"); channel.queueDeclare(queue, false, false, true, null); channel.basicQos(1); replyQueue = channel.queueDeclare().getQueue(); consumer = new QueueingConsumer(channel); channel.basicConsume(replyQueue, consumer); try { while (run) { Delivery delivery = consumer.nextDelivery(); if (Visage.trace) Visage.log.finest("Got delivery"); try { String corrId = delivery.getProperties().getCorrelationId(); if (queuedJobs.containsKey(corrId)) { if (Visage.trace) Visage.log.finest("Valid"); responses.put(corrId, delivery.getBody()); Runnable run = queuedJobs.get(corrId); queuedJobs.remove(corrId); run.run(); if (Visage.trace) Visage.log.finest("Ran runnable"); channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); if (Visage.trace) Visage.log.finest("Ack'd"); } else { Visage.log.warning("Unknown correlation ID?"); channel.basicNack(delivery.getEnvelope().getDeliveryTag(), false, false);
@Override public Outcome read() { final IRawDataProcessor rawDataProcessor = this.processor; try { this.channel.basicConsume(this.queueName, true, this.consumer); while (!this.terminated) { // Read the next message and dispatch the received data to the processor final QueueingConsumer.Delivery delivery = this.consumer.nextDelivery(); final byte[] body = delivery.getBody(); rawDataProcessor.decodeAndDeliverRecords(body); } } catch (final IOException e) { LOGGER.error("Error while reading from queue {}", this.queueName, e); return Outcome.FAILURE; } catch (final InterruptedException e) { LOGGER.error("Consumer was interrupted on queue {}", this.queueName, e); return Outcome.FAILURE; } return Outcome.SUCCESS; }
private void processDelivery(Delivery delivery) throws Exception { BasicProperties props = delivery.getProperties(); BasicProperties replyProps = new BasicProperties.Builder().correlationId(props.getCorrelationId()).build(); DataInputStream data = new DataInputStream(new InflaterInputStream(new ByteArrayInputStream(delivery.getBody()))); RenderMode mode = RenderMode.values()[data.readUnsignedByte()]; int width = data.readUnsignedShort(); byte[] pngBys = draw(conf, width, height, profile, skin, params); if (Visage.trace) Visage.log.finest("Got png bytes"); parent.channel.basicPublish("", props.getReplyTo(), replyProps, buildResponse(0, pngBys)); if (Visage.trace) Visage.log.finest("Published response"); parent.channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); if (Visage.trace) Visage.log.finest("Ack'd message");
public MQItem recv() throws InterruptedException, IOException { QueueingConsumer.Delivery delivery = consumer.nextDelivery(); MQItem item = gson.fromJson(new String(delivery.getBody()), MQItem.class); channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); return item; }
while(!stopSignal || (delivery = consumer.nextDelivery(250)) != null) { curQuad = new Object2Quad(toTripleStmt(new String(delivery.getBody()))); } finally { try { if(channel.isOpen()) { channel.close();
if( delivery != null ) String message = new String( delivery.getBody() ); log.debug( "Received message: " + message ); if( message.contains( "\"method\": \"revoke\"" ) ) getChannel().basicAck( delivery.getEnvelope().getDeliveryTag(), false );
boolean flag; System.out.println("Rozmiar queue " + queueNames.size()); for (int i = 0; i < queueNames.size(); i++) { Channel channel = connection.createChannel(); QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicConsume(queueNames.get(i).toString(), true, consumer_tag, consumer); flag = true; while (flag) { QueueingConsumer.Delivery delivery = consumer.nextDelivery(timeout); if (delivery == null) { flag = false; } else { String message = new String(delivery.getBody(), "UTF-8"); System.out.println(" [x] Message Received '" + message + "'"); } } }
consumer = new QueueingConsumer(channel); channel.basicConsume(queue, true, consumer); QueueingConsumer.Delivery delivery = consumer.nextDelivery(); String body = new String(delivery.getBody()); System.out.println("Message from exch " + delivery.getEnvelope().getExchange() + ", key '" + delivery.getEnvelope().getRoutingKey() + "':\n" + body);
@Override public boolean hasMore() { nextRow = null; try { if (nextIterator.hasNext()) { nextRow = nextIterator.next(); return true; } // Wait for the next delivery. This will block until something is available. final Delivery delivery = consumer.nextDelivery(); if (delivery != null) { lastDeliveryTag = delivery.getEnvelope().getDeliveryTag(); nextIterator = firehoseParser.parseBatch(ByteBuffer.wrap(delivery.getBody())).iterator(); if (nextIterator.hasNext()) { nextRow = nextIterator.next(); // If delivery is non-null, we report that there is something more to process. return true; } } } catch (InterruptedException e) { // A little unclear on how we should handle this. // At any rate, we're in an unknown state now so let's log something and return false. log.wtf(e, "Got interrupted while waiting for next delivery. Doubt this should ever happen."); } // This means that delivery is null or we caught the exception above so we report that we have // nothing more to process. return false; }
@Override public void handleDelivery( String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body ) throws IOException { this._queue.add(new Delivery(envelope, properties, body)); }
public static Message createMessage(QueueingConsumer.Delivery delivery) { AMQP.BasicProperties properties = delivery.getProperties(); byte[] msgBody = delivery.getBody(); Message msg = MessageFactory.createMessage(); initMessage(msg, properties, msgBody); return msg; }