<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
以6-7位的一組數位,中間用空格間隔的字串,表達一種時間
每位的含義及取值範圍:
秒(0-59) 分(0-59) 時(0-23) 日(1-31) 月(1-12) 周(1-7或SUN-SAT) 年(四位數,可省略)
符號的含義:
*
表示所有值(秒位是*,則表示每秒)?
表示未說明的值,(日和周必須有一位為?,因為不合邏輯)-
表示一個指定的範圍,
表示一個可能值/
符號前表示開始時間,符號後表示每次遞增的值L
最後的,在’天’上表示這個月最後一天,用在’周’上表示’7或SUN’,在週上與數位一起,如"7L"表示這個月的最後一個週六(阿麥利卡日曆,1表示週日)W
只能用在’天’上, 用來描敘最接近指定天的工作日(週一到週五) ,如"15W"指"最近接這個月第15天的工作日",如果第15天是週六,那麼會在第14天即週五觸發#
只能在’周’上使用,用來指定這個月的第幾個周幾,如’6#3’表示這個月的第三個週五(6表示週五,3表示第三週).如果指定日期不存在,那麼將不會觸發C
指和canlendar聯絡後計算過的值,如在’天’上標註’5C’指這個月第五天或之後包括canlendar的第一天;在’周’上標’1C’指這週日或之後包括calendar的第一天.當然不理解也沒關係,網上一搜就有很多Cron表示式線上生成器
使用非同步進行檔案上傳,將獲取token檔案存到資料庫中,如果使用者在提交表單之前反覆上傳檔案會產生很多殭屍資料,需要使用定時任務刪除殭屍token欄位和上傳到伺服器的圖片
開啟任務排程
@EnableScheduling //開啟任務排程 @SpringBootApplication public class UploadApplication { public static void main(String[] args) { SpringApplication.run(UploadApplication.class, args); } }
編寫清除殭屍token業務
//mapper //獲取殭屍token的id List<Integer> selectDeadTokens(); //清除殭屍資料 int deleteDeadToken(@Param("ids") List<Integer> ids);
<delete id="deleteDeadToken"> delete from imagetoken where id in <foreach collection="ids" item="e" open="(" separator="," close=")"> #{e} </foreach> </delete> <select id="selectDeadTokens" resultType="java.lang.Integer"> SELECT id FROM imagetoken t WHERE t.token NOT IN (select token FROM good) </select>
//service @Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.SERIALIZABLE) @Override public void deleteDeadToken() { System.out.println("---開始清除所有殭屍token---"); List<Integer> list = imagetokenMapper.selectDeadTokens(); System.out.println("已找到"+list.size()+"條資料"); if (list.size()>0) { int result = imagetokenMapper.deleteDeadToken(list); System.out.println("本次刪除"+result+"條資料"); } }
查詢資料庫中存放檔案地址的集合
@Override public List<String> getList() { //條件構造器 查存放地址 LambdaQueryWrapper<Good> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.select(Good::getSavepath); //this指的是當前service List<Good> list = this.list(queryWrapper); // System.out.println("查詢到的資料:"); // System.out.println(list); //獲取資料庫中所有圖片的絕對路徑List<String> ArrayList<String> paths = new ArrayList<>(); //將查到的資料中的檔案地址遍歷到String型別的list中 list.stream().forEach(good -> { paths.add(good.getSavepath()); }); //System.out.println("查到的路徑:"+paths); return paths; }
使用@Scheduled註解開啟任務排程
@Value("${image.savepath}") String savePath; /** * 每天晚上23點清除無效token資料並刪除圖片 */ @Scheduled(cron = "0 0 23 * * ?") public void delete(){ //1.清除無效token imagetokenService.deleteDeadToken(); //2.刪除殭屍檔案 //2.1獲取資料庫中檔案儲存列表 List<String> paths = goodService.getList(); //2.2 獲取圖片儲存地址 File target=new File(savePath); //2.3遍歷圖片儲存所在資料夾的檔案 File[] files=target.listFiles(); for (File file : files) { if (file.isFile()){ //2.4獲取儲存檔案的絕對地址,需要將碟符修改, String absPath = file.getAbsolutePath().replaceAll("\\", "/"); //2.5將不存在的檔案刪除 if(!paths.contains(absPath)){ //System.out.println("要刪除檔案的覺得路徑:"+absPath); file.delete(); } } } }
到此這篇關於Spring Task定時任務的實現詳解的文章就介紹到這了,更多相關Spring定時任務內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45