延迟队列迭代器因 NoSuchElementException 而失败

问题描述

我有一个包含大约 1000 条记录的延迟队列。我的用例是读取队列并将记录写入已过期和未过期的文件。所以我尝试使用迭代器下面的代码,但它在写入后因“NoSuchElementException”异常而失败文件中的几条记录。

 private final BlockingQueue<DelayedRecord> retryMessages = new DelayQueue<DelayedRecord>();
   FileWriter fw = null;
        try {
            if (retryMessages.size() > 0) {
                fw = new FileWriter("/home/file.txt");
                Iterator<DelayedRecord> rr = retryMessages.iterator();
                while (rr.hasNext()) {

                    String filename = rr.next().getRecord();
                    fw.write(filename);
                }
               
            } else {
                LOGGER.info("No records in the queue");
            }
        } catch (final Exception e) {
            LOGGER.warn("Error reading queue: " + e.getMessage(),e);
        } finally {
            //close resources
            try {
                fw.close();
            } catch (IOException e) {
                e.printstacktrace();
            }

有什么指点吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)