如何使用java每隔15分钟将连续的数据移动到文件中



将有来自x设备的数据,我需要每隔15分钟将它们移动到文件中,请分享一些想法,我们如何在java中做到这一点

从java 1.5开始,java SE中就有了一个executor框架。

更具体地说,对于你的用例,类executor包含方法newsinglethreadscheduledexexecutor()。它将返回新的ScheduledExecutorService实例。使用该服务来安排您需要执行的一些Runnable实现工作。下面的代码片段说明了这个想法。

private final ScheduledExecutorService scheduler =
   Executors.newSingleThreadScheduledExecutor();

 final Runnable myWorkingRunnable = new Runnable() {
   public void run() { System.out.println("Working"); }
 };
 final ScheduledFuture<?> workHandler =
   scheduler.scheduleAtFixedRate(myWorkingRunnable , 0, 15, TimeUnit.MINUTES);

您可以使用workHandlerscheduler来进一步操作服务或调度的Runnable

您可以设置线程或使用像Quartz这样的调度程序http://quartz-scheduler.org/

你只需要用quartz每15分钟安排一个任务,然后把你的文件移到任务

首先,用maven

导入quartz依赖
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>

然后创建一个Job类

public class MoveFilesJob implements Job {
    public void execute(JobExecutionContext context) throws JobExecutionException {
        // TODO move your files here
    }
}

最后,创建一个触发器并运行它

    JobDetail job = JobBuilder.newJob(MoveFilesJob.class)
            .withIdentity("moveFileJob", "group1").build();

    Trigger trigger = TriggerBuilder
            .newTrigger()
            .withIdentity("moveFileTrigger", "group1")
            .withSchedule(
                    SimpleScheduleBuilder.simpleSchedule()
                    .withIntervalInMinutes(15).repeatForever())
            .build();
    Scheduler scheduler = new StdSchedulerFactory().getScheduler();
    scheduler.start();
    scheduler.scheduleJob(job, trigger);

相关内容

  • 没有找到相关文章

最新更新