[ https://issues.apache.org/jira/browse/KAFKA-1659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14154049#comment-14154049 ]
Guozhang Wang commented on KAFKA-1659: -------------------------------------- Hey [~jkreps], from Andrew's question email on the mailing-list it seems that his scenario is to close the producer from the callback function, which can be triggered either by the caller thread or the network thread. In the former case there is not a problem calling producer.close(), but in the latter case it is tricky since network thread calling producer.close() will block forever. > Ability to cleanly abort the KafkaProducer > ------------------------------------------ > > Key: KAFKA-1659 > URL: https://issues.apache.org/jira/browse/KAFKA-1659 > Project: Kafka > Issue Type: Improvement > Components: clients, producer > Affects Versions: 0.8.2 > Reporter: Andrew Stein > Assignee: Jun Rao > Fix For: 0.8.2 > > > I would like the ability to "abort" the Java Client's KafkaProducer. This > includes the stopping the writing of buffered records. > The motivation for this is described > [here|http://mail-archives.apache.org/mod_mbox/kafka-dev/201409.mbox/%3CCAOk4UxB7BJm6HSgLXrR01sksB2dOC3zdt0NHaKHz1EALR6%3DCTQ%40mail.gmail.com%3E]. > A sketch of this method is: > {code} > public void abort() { > try { > ioThread.interrupt(); > ioThread.stop(new ThreadDeath()); > } catch (IllegalAccessException e) { > } > } > {code} > but of course it is preferable to stop the {{ioThread}} by cooperation, > rather than use the deprecated {{Thread.stop(new ThreadDeath())}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)