我有一個Django的網頁程式,其中有一個定時任務,設定的每天23點運行,代碼如下:
try:
# 設定最大執行緒數為3
job_defaults = {'max_instances': 3}
scheduler = BackgroundScheduler(timezone=settings.TIME_ZONE, job_defaults=job_defaults)
# scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
@register_job(scheduler, 'cron', hour="23", minute = "00", id="task_data")
def countdata():
"""
每天晚上11:59定時執行采集資料和加工資料統計程式
:return:
"""
print("%s資料統計開始" % datetime.datetime.now())
thread_list = []
thread1 = threading.Thread(target=Countcjsqldata().countvalue)
thread2 = threading.Thread(target=Countjgsqldata().countvalue)
thread3 = threading.Thread(target=Countjgsqldatacountry().countvalue)
thread_list.append(thread1)
thread_list.append(thread2)
thread_list.append(thread3)
for t in thread_list:
t.setDaemon(True)
t.start()
for i in thread_list:
i.join()
print("%s資料統計結束" % datetime.datetime.now())
# register_events(scheduler)
scheduler.start()
print("采集加工資料量統計定時任務啟動!")
except Exception as e:
print("定時服務錯誤,已關閉:%s" % e)
# 有錯誤就停止定時器
scheduler.shutdown()
但是運行時候報錯:
Error getting due jobs from job store 'default': (0, '')
我查了一下是因為我的資料庫超時自動斷開了連接,請教怎么能夠解決這個問題?
uj5u.com熱心網友回復:
如果是低頻的任務,執行任務時連接資料庫,執行完關閉連接吧uj5u.com熱心網友回復:
基于apschuler的定時任務會將序列存入mysql資料庫,到時間了就去mysql資料庫中讀取任務來執行,我是直接無法從mysql資料庫中讀取到任務。并不是任務中有連接資料庫的情況。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/281024.html
下一篇:資料庫Models的參考說明
