From 6926c27f2105577591e558b83d3916fde52c88bd Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期三, 22 十二月 2021 16:30:02 +0800
Subject: [PATCH] fix weather bug

---
 server/models/taskSchedule.js |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/server/models/taskSchedule.js b/server/models/taskSchedule.js
index bb4ccbc..2db6da1 100644
--- a/server/models/taskSchedule.js
+++ b/server/models/taskSchedule.js
@@ -6,8 +6,9 @@
 var jsonData = '';//瀛樺偍澶╂皵淇℃伅
 // 瀹氫箟瑙勫垯
 let rule = new schedule.RecurrenceRule();
-// rule.minute = [1,11,21,31,41,51]
-rule.second = [30, 60]; // 姣忛殧 10 绉掓墽琛屼竴娆�
+rule.minute = [1,6,11,16,21,26,31,36,41,46,51,56]
+//rule.second = [30, 60]; // 姣忛殧 10 绉掓墽琛屼竴娆�
+
 
 
 module.exports = {
@@ -19,13 +20,18 @@
 
 };
 
-schedule.scheduleJob('5 0 * * * *', async () => {//姣忓皬鏃跺畾鏃跺彇澶╂皵鏁版嵁
+schedule.scheduleJob(rule, async () => {//姣忓皬鏃跺畾鏃跺彇澶╂皵鏁版嵁
     //https://devapi.heweather.net/v7/weather/now?location=101021700&key=495b433d21c84986a99c4ac52d42fd3b
     let urlstr = "https://devapi.heweather.net/v7/weather/now?location=location_code&key=495b433d21c84986a99c4ac52d42fd3b";
-    let sqlstr = `select * from t_s_weather_city order by code`;
+    sqlstr = `select * from t_s_weather_city order by code`;
     let data_rets = await mysql.query_data(sqlstr, 'master', null)
     for (let index = 0; index < data_rets.length; index++) {
         let element = data_rets[index];
+        // 妫�娴嬪綋鍓嶆槸鍚﹀凡鏈夊ぉ姘旀暟鎹�
+        let sqlstr = `select count(1) as counter from t_d_weather_hour where citycode='`+element.code+`' and TO_DAYS(now())=TO_DAYS(posttime) and HOUR(now())=hour(posttime) `;
+        let lastdata_times = await mysql.query_data(sqlstr, 'master', null);
+        if( lastdata_times[0].counter > 0 ) { continue ;}      
+        // 鑻ュ綋鍓嶆棤澶╂皵鏁版嵁锛岄噸鏂版姄鍙�  
         axios.get(urlstr.replace('location_code', element.code)).then(response => {
             if(response.data.now) {
                 let w = response.data.now;
@@ -44,13 +50,19 @@
 });
 
 
-schedule.scheduleJob('5 1 0 * * *', async () => {//姣忓ぉ瀹氭椂鏇存柊澶╂皵鏁版嵁
+schedule.scheduleJob(rule, async () => {//姣忓ぉ瀹氭椂鏇存柊澶╂皵鏁版嵁
     //https://devapi.qweather.com/v7/weather/3d?location=101021700&key=495b433d21c84986a99c4ac52d42fd3b
+    
     let urlstr = "https://devapi.qweather.com/v7/weather/3d?location=location_code&key=495b433d21c84986a99c4ac52d42fd3b";
-    let sqlstr = `select * from t_s_weather_city order by code`;
+    sqlstr = `select * from t_s_weather_city order by code`;
     let data_rets = await mysql.query_data(sqlstr, 'master', null)
     for (let index = 0; index < data_rets.length; index++) {
         let element = data_rets[index];
+        // 妫�娴嬪綋鍓嶆槸鍚﹀凡鏈夊ぉ姘旀暟鎹�
+        let sqlstr = `select count(1) as counter from t_d_weather_day where citycode='`+element.code+`' and TO_DAYS(now())=TO_DAYS(posttime)`;
+        let lastdata_times = await mysql.query_data(sqlstr, 'master', null);
+        if( lastdata_times[0].counter > 0 ) { continue ;}       
+        // 鑻ュ綋鍓嶆棤澶╂皵鏁版嵁锛岄噸鏂版姄鍙�
         axios.get(urlstr.replace('location_code', element.code)).then(response => {
             if(response.data.daily) {
                 let w = response.data.daily[0];

--
Gitblit v1.9.1