[ 
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)

Reply via email to