我有兩個定時器,這個時間表兩個任務:Java的兩個定時器
readFromvCSV()
- 查找文件夾中的所有CSV文件除了最後一個
- 讀取所有數據從它們寫入CassandraDB(或者如果不能 - 到文件夾中的最後一個文件)
- 刪除所有的CSV文件(最後一個除外)
的checkStatus()
- 查找文件夾中的所有CSV文件,並採取的最後一個
- 文件的大小如果文件大小> 1 MB,發送電子郵件
它工作起初,雖然數據是幾行左右,但當涉及到數千 - 我得到了這個錯誤信息:
Exception in thread "Timer-0" java.lang.ArrayIndexOutOfBoundsException: 1
at handler.emergency.ReWrite.WriteToCassandra(ReWrite.java:197)
at handler.emergency.ReWrite.lambda$ReadFromCSV$1(ReWrite.java:137)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at handler.emergency.ReWrite.ReadFromCSV(ReWrite.java:129)
at handler.emergency.ReWrite.access$000(ReWrite.java:21)
at handler.emergency.ReWrite$1.run(ReWrite.java:56)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
也許我通過兩個任務同時訪問文件得到這個錯誤?
可能我可以用自己的計時器和任務編寫兩個不同的類:一個具有讀\寫功能,另一個具有讀\ Email功能,但我很有興趣以兩種定時器/任務的方式解決問題。
我需要什麼?另一個異步線程?
對不起,所有的錯誤,我的第一後
更新:後爲注意力不集中,很抱歉。錯誤來自錯誤的CSV數據。
它告訴你錯誤在'at at com.academmedia.stat.handler.emergency.ReWrite.WriteToCassandra(ReWrite.java:197)' –
是的,抱歉,只是沒有看到那個跟蹤行。這似乎有時腦和眼睛需要休息* _ * – ANTVirGEO