[
https://issues.apache.org/jira/browse/KAFKA-1659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14320991#comment-14320991
]
Guozhang Wang commented on KAFKA-1659:
--------------------------------------
Okay, I think we may need to treat the following two cases separately:
1. another caller thread needs to "abort" the producer process (including the
iothread).
2. the io-thread itself needs to abort the process, e.g. from the callback
error handling.
What I was thinking about is for 2) above. As for 1) I agree that
close(timeout) will work, but I am wondering if we can have a single API that
covers both.
> 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.0
> Reporter: Andrew Stein
> Assignee: Jun Rao
> Fix For: 0.8.3
>
>
> 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)