schedule定時任務出現問題 (大坑已填)!!


因為python每次運行完,並不清除內存,nowtime一直不變,這導致了一個致命問題,使我的腳本一直運行失敗,具體如下:

我設置的是每隔30分鍾登陸一次,代碼如下

if __name__ == "__main__":
            login()
schedule.every(30).minutes.do(login)

while True:
    schedule.run_pending()
    time.sleep(1)

但是它每次運行返回的數據都是一樣的
我9點多第一次打開運行,半個小時后運行結果如下:

[+]登錄成功
現在是北京時間:(2020-05-07 09:53:26.624833)
LM003,“任務未開始”,任務時間:13
LM006,“任務未開始”,任務時間:14
LM007,“任務未開始”,任務時間:12
LM005,“任務未開始”,任務時間:09
[+]登錄成功
現在是北京時間:(2020-05-07 09:53:26.624833)
LM003,“任務未開始”,任務時間:13
LM006,“任務未開始”,任務時間:14
LM007,“任務未開始”,任務時間:12
LM005,“任務未開始”,任務時間:09

原因是我在關鍵函數中加入了對比

def indexlist():
    print("現在是北京時間:(%s)"%(now))
    for index in range(len(list2)):
        if((buylist2[index]['state'])=="0"):
            if(int(buylist2[index]['task_hour']) <= int(now.hour)):
                                while True:
                    send(QQ)
                    if(json_data3['data']!='null'):
                        break
                send_pic(****)
            else:
                print ("{ID},“任務未開始”,任務時間:{tasktime}".format(ID = ***,tasktime = ***))
        else:
            print ("{ID},任務已完成".format(***))

而我的now = datetime.datetime.now()是定義在login外的,所以每次運行一直不變,導致程序出現輸出錯誤

解決辦法:將now = datetime.datetime.now()寫入每半個小時login函數,並且每次運行完最后加上now=None清除內存

def login():
    global now
    now = datetime.datetime.now()
    巴拉巴拉一大堆之后
      

    now=None

About Me

QQ 群:1094019526    tg 群:QQ 群里有

聯系我請加 QQ 好友 (1362449059),注明添加緣由

文章內容來源於 TOM 的學習筆記,部分整理自網絡,若有侵權或不當之處還請諒解

本文版權所有,轉載請標明出處,謝謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM