当前位置: 首页> 健康> 知识 > 广西建设厅网证书查询_电商平台建设_网络搜索关键词排名_seo关键词优化排名哪家好

广西建设厅网证书查询_电商平台建设_网络搜索关键词排名_seo关键词优化排名哪家好

时间:2025/8/27 9:18:10来源:https://blog.csdn.net/qswdcs1/article/details/144113447 浏览次数:0次
广西建设厅网证书查询_电商平台建设_网络搜索关键词排名_seo关键词优化排名哪家好

package com.example.taskscheduler;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@Service
public class TaskSchedulerService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    // Redis 存储任务的前缀
    private static final String TASK_KEY = "tasks";

    // 定期检查任务的时间间隔(每 1 分钟检查一次)
    @Scheduled(fixedRate = 60000)
    public void checkTasks() {
        redisTemplate.opsForHash().keys(TASK_KEY).forEach(key -> {
            String keyStr = key.toString();

            // 只处理以 ":time" 结尾的键
            if (keyStr.endsWith(":time")) {
                String taskId = keyStr.substring(0, keyStr.length() - 5); // 提取 taskId
                String taskTimeStr = (String) redisTemplate.opsForHash().get(TASK_KEY, taskId + ":time");

                if (taskTimeStr != null) {
                    // 解析用户设定的时间,支持时分秒
                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                    LocalDateTime taskTime = LocalDateTime.parse(taskTimeStr, formatter);
                    LocalDateTime now = LocalDateTime.now();

                    // 如果任务时间已经到达或超过当前时间,立即执行任务
                    if (!taskTime.isAfter(now)) {
                        executeTask(taskId);
                    } else {
                        // 如果任务时间尚未到达,跳过任务
                        System.out.println("Task " + taskId + " scheduled for " + taskTime + " is not yet due.");
                    }
                }
            }
        });
    }

    // 执行任务的逻辑
    private void executeTask(String taskId) {
        System.out.println("Executing task with ID: " + taskId + " at " + LocalDateTime.now());
        // 这里可以加入实际的任务执行代码
    }

    // 存储任务的时间到 Redis
    public void saveTaskTime(String taskId, String taskTime) {
        redisTemplate.opsForHash().put(TASK_KEY, taskId + ":time", taskTime);
    }

    // 修改已有任务的时间
    public void updateTaskTime(String taskId, String newTaskTime) {
        // 检查任务是否存在
        if (redisTemplate.opsForHash().hasKey(TASK_KEY, taskId + ":time")) {
            redisTemplate.opsForHash().put(TASK_KEY, taskId + ":time", newTaskTime);
            System.out.println("Task " + taskId + " time updated to: " + newTaskTime);
        } else {
            System.out.println("Task " + taskId + " does not exist.");
        }
    }
}
 

关键字:广西建设厅网证书查询_电商平台建设_网络搜索关键词排名_seo关键词优化排名哪家好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: