java - Writing JSON using Jackson blocks my TimerTask -
i write json every 5th second. i'm using jackson write json, seem block timertask. if don't write json, timertask run every 5th second, when try write json it's blocked , run once. how can fix this?
public class mytimertask extends timertask { public static void main(string[] args) { timer timer = new timer(); // execute mytimertask every 5th second timer.scheduleatfixedrate(new mytimertask(), 1000l, 5 * 1000l); } @override public void run() { system.out.println("timertask"); // write json system.out objectmapper mapper = new objectmapper(); try { mapper.writevalue(system.out, "hello"); } catch (exception e1) { e1.printstacktrace(); } } }
here stack dump timer thread:
"timer-0" prio=6 tid=0x02488000 nid=0x10ec in object.wait() [0x04a6f000] java.lang.thread.state: timed_waiting (on object monitor) @ java.lang.object.wait(native method) - waiting on <0x24577fa8> (a java.util.taskqueue) @ java.util.timerthread.mainloop(unknown source) - locked <0x24577fa8> (a java.util.taskqueue) @ java.util.timerthread.run(unknown source)
the problem use of system.out, not jackson.
Comments
Post a Comment