/** * */ package jframe.clrfile; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import jframe.core.msg.Msg; import jframe.core.plugin.PluginException; import jframe.core.plugin.PluginRecver; /** * * @author dzh * @date Jan 16, 2014 9:35:20 AM * @since 1.0 */ public class ClrFilePlugin extends PluginRecver { ScheduledExecutorService ses; public void start() throws PluginException { super.start(); createScheduler(); } /** * */ private void createScheduler() { String[] dirs = getConfig("clrfile.dirs", "").split(" "); String default_val = getConfig("clrfile.expire", "720"); ses = Executors.newScheduledThreadPool(2); for (int i = 0; i < dirs.length; ++i) { int val = 720; try { val = Integer.parseInt(getConfig("clrfile.expire" + i, default_val)); } catch (Exception e) { } ses.scheduleAtFixedRate(new ClearRunnable(dirs[i], val), 0, val, TimeUnit.MINUTES); } } /* * (non-Javadoc) * * @see jframe.core.plugin.Plugin#stop() */ public void stop() throws PluginException { try { ses.shutdownNow(); ses.awaitTermination(5, TimeUnit.SECONDS); } catch (InterruptedException e) { } super.stop(); } /* * (non-Javadoc) * * @see jframe.core.plugin.PluginRecver#doRecvMsg(jframe.core.msg.Msg) */ @Override protected void doRecvMsg(Msg<?> msg) { } /* * (non-Javadoc) * * @see jframe.core.plugin.PluginRecver#canRecvMsg(jframe.core.msg.Msg) */ @Override protected boolean canRecvMsg(Msg<?> msg) { return false; } }