服务器启动,初始化执行计划,定时任务

package com.changan.contract.common.timer;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.time.ZonedDateTime;
import java.util.*;

import com.alibaba.druid.sql.visitor.functions.Now;
import com.changan.contract.utils.JsonResult;
import com.changan.contract.xqht.dao.ProcessDao;
import com.changan.contract.xqht.dao.XxctLaborRenewMapper;
import com.changan.contract.xqht.entity.*;
import com.changan.contract.xqht.utils.fadada.FaDaDaUtils;
import com.google.common.base.Strings;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.env.Environment;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import com.alibaba.fastjson.JSONObject;
import com.changan.contract.config.Configuration;
import com.changan.contract.labor.dao.LaborerDao;
import com.changan.contract.labor.po.LaborContractPO;
import com.changan.contract.labor.po.Laborer;
import com.changan.contract.labor.service.LaborContractService;
import com.changan.contract.newsign.entity.LaborRecNew;
import com.changan.contract.newsign.service.LaborRecNewService;
import com.changan.contract.newsign.utils.Base64Coded;
import com.changan.contract.newsign.utils.RSAEncrypt;
import com.changan.contract.utils.DateUtil;
import com.changan.contract.utils.SendMailUtil;
import com.changan.contract.utils.SendSMSUtil;
import com.changan.contract.xqht.service.XqhtService;
import com.changan.contract.xqht.utils.ca.CaUtils;
import com.changan.contract.xqht.utils.http.ApiUtils;
import com.changan.contract.xqht.utils.http.LXHttpClientUtils;

import lombok.extern.slf4j.Slf4j;

/**
 * 服务器启动,初始化执行计划
 *
 * @author sunbowen
 * @author Granpee 于2018年6月1日重构
 */
@Slf4j
@Component
public class CommonTimer implements CommandLineRunner {


    @Autowired
    RedisTemplate redisTemplate;

    /**
     * 把已经流程完成的续签信息传给XXCT_LABOR_RENEW表
     */
    private void run12SyncReNew() {
        log.info("************************ 运行12小时定时任务 ************************");
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                List<LaborReNew> list = processDao.searchEmployeeByStatus();
                Integer updateCount = 0;
                Integer insertCount = 0;
                for (LaborReNew laborReNew : list) {
                    String employeeNumber = laborReNew.getEmployeeNumber();
                    Date attributeDat1 = laborReNew.getAttributeDat1();
                    Date createDate = laborReNew.getCreateDate();
                    List<LaborReNew> lists=xxctLaborRenewMapper.searchByUniq( employeeNumber,attributeDat1,createDate);
                    if (lists.size() == 0) {
                        Integer insert = xxctLaborRenewMapper.insertReNew(laborReNew);
                        insertCount += insert;
                        //Integer update = xxctLaborRenewMapper.updateByPrimaryKey3(employeeNumber, attributeDat1, createDate,laborReNew);
                        //updateCount += update;
                        //log.info("修改ReNew表员工编号:{} 是否成功:{}", employeeNumber, update);
                    } else {

                        // log.info("新增ReNew表员工编号:{} 是否成功:{}", employeeNumber, insert);
                    }

                }
                //log.info("成功修改ReNew表员工个数:{} ",updateCount);
                log.info("成功新增ReNew表员工个数:{} ",insertCount);
            }
        }, 0, (long) 1000 * 60 );
    }

    @Autowired
    ProcessDao processDao;
    @Autowired
    XxctLaborRenewMapper xxctLaborRenewMapper;



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现定时任务的持久化,可以使用 Flask 框架结合 APScheduler 和 Redis 数据库。具体步骤如下: 1. 安装 Flask、APScheduler 和 Redis: ``` pip install flask apscheduler redis ``` 2. 创建 Flask 应用,并配置 Redis 数据库: ```python from flask import Flask from apscheduler.schedulers.background import BackgroundScheduler from redis import Redis app = Flask(__name__) redis = Redis(host='localhost', port=6379) scheduler = BackgroundScheduler() scheduler.start() ``` 3. 创建定时任务,并将任务存储到 Redis 数据库中: ```python from datetime import datetime def job(): print('Hello, World!') # 将任务添加到调度器中 scheduler.add_job(job, 'interval', seconds=10) # 将任务信息存储到 Redis 中 job_info = { 'id': 'job1', 'func': job.__name__, 'trigger': 'interval', 'seconds': 10, 'next_run_time': datetime.now().strftime('%Y-%m-%d %H:%M:%S') } redis.set('job1', json.dumps(job_info)) ``` 4. 创建 Flask 路由,用于展示定时任务列表: ```python import json @app.route('/jobs') def jobs(): jobs = [] for key in redis.keys(): job_info = json.loads(redis.get(key)) jobs.append(job_info) return json.dumps(jobs) ``` 5. 启动 Flask 应用: ```python if __name__ == '__main__': app.run(debug=True) ``` 至此,定时任务的持久化功能就完成了。需要注意的是,如果定时任务需要在多台服务器上共享,需要将 Redis 数据库配置为共享的,否则每台服务器上的定时任务都是独立的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值