java定时执行job 非quartz

前言

晚上想实现一个功能,每天12/24点爬虫遍历网站更新数据。由于是一个小小的功能,不想使用quartz占用自己512M的vps太多空间,于是使用JDK自带的 Timer来实现。

code area
        Timer timer = new Timer();
        //使用Calendar来获得自定义的日期时间
        Calendar c = Calendar.getInstance();
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE,59);
        c.set(Calendar.SECOND,59);
        Date firstDate = c.getTime();

        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
            System.out.println("timer tasl test run at " + new Date() );
            }
        }, firstDate, 12*60*60*1000));  //从下一个23:59:59开始,每12小时执行一次

简单的job可以直接使用Timer,对于大中型项目还是使用quartz和quartz注解更方便更可靠!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下步骤来定时删除Minio文件: 1. 创建一个Java类来连接Minio客户端并删除文件: ```java import io.minio.MinioClient; import io.minio.errors.MinioException; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; public class MinioFileDeleter { private static final String ENDPOINT = "http://localhost:9000"; private static final String ACCESS_KEY = "your-access-key"; private static final String SECRET_KEY = "your-secret-key"; private static final String BUCKET_NAME = "your-bucket-name"; public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException, MinioException { // Initialize Minio client MinioClient minioClient = new MinioClient(ENDPOINT, ACCESS_KEY, SECRET_KEY); // Delete file minioClient.removeObject(BUCKET_NAME, "file-to-delete.txt"); } } ``` 2. 使用Quartz来创建一个定时任务来运行上面的Java类。以下是一个示例: ```java import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class MinioFileDeletionJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { try { MinioFileDeleter.main(null); } catch (Exception e) { e.printStackTrace(); } } } ``` 3. 然后,您可以使用以下代码来创建一个Quartz定时任务调度程序: ```java import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; public class MinioFileDeletionScheduler { public static void main(String[] args) throws Exception { // Define job JobDetail job = JobBuilder.newJob(MinioFileDeletionJob.class).build(); // Define trigger Trigger trigger = TriggerBuilder.newTrigger().withIdentity("MinioFileDeletionTrigger") .withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 * * ?")).build(); // Schedule job Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job, trigger); } } ``` 4. 在上面的代码中,使用Cron表达式来定义定时任务的运行时间。例如,“0 0 0 * * ?”表示每天午夜运行任务。 5. 运行MinioFileDeletionScheduler类来启动定时任务调度程序。 这样就可以每天定时删除Minio文件了。请注意,您需要更改Java类中的Minio端点、访问密钥和密钥等信息以匹配您的环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值