多任务 schedule python_Python3.6 Schedule 模块定时任务 (实例讲解)
Python3.6 Schedule 模塊定時(shí)任務(wù) (實(shí)例講解)
Python 是一種面向?qū)ο蠼忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言, 由 Guido van Rossum 于 1989 年底發(fā)明, 第一個(gè)公開(kāi)發(fā)行版發(fā)行于 1991 年 Python 語(yǔ)法簡(jiǎn)潔而清晰, 具有豐富和強(qiáng)大的類庫(kù)它常被昵稱為膠水語(yǔ)言, 它能夠把用其他語(yǔ)言制作的各種模塊 (尤其是 C/C++) 很輕松地聯(lián)結(jié)在一起
下面小編就為大家?guī)?lái)一篇 Python3.6 Schedule 模塊定時(shí)任務(wù) (實(shí)例講解) 小編覺(jué)得挺不錯(cuò)的, 現(xiàn)在就分享給大家, 也給大家做個(gè)參考一起跟隨小編過(guò)來(lái)看看吧
一, 編程環(huán)境
PyCharm2016,Anaconda3 Python3.6
需要安裝 schedule 模塊, 該模塊網(wǎng)址: https://pypi.python.org/pypi/schedule
打開(kāi) Anaconda Prompt, 輸入: conda install schedule 提示: Package Not Found Error
于是, 使用 pip 安裝由于 Anaconda3 中已經(jīng)自帶了 pip, 如下圖:
于是 cmd 命令行切換到 scripts 目錄, 執(zhí)行 pip.exe install schedule 安裝成功這樣就可以在 PyCharm 里面 import schedule 了
二, 在每天某個(gè)指定的時(shí)間點(diǎn)上, 從數(shù)據(jù)庫(kù)中查找數(shù)據(jù)然后寫(xiě)入 csv 文件
使用 sqlalchemy 模塊來(lái)建立數(shù)據(jù)庫(kù)連接, 關(guān)于 windows 下 python3.6 for mysql 驅(qū)動(dòng)安裝, 可參考: windows10 下使用 Pycharm2016 基于 Anaconda3 Python3.6 安裝 Mysql 驅(qū)動(dòng)總結(jié)
使用 schedule 模塊來(lái)執(zhí)行周期性任務(wù)關(guān)于該模塊的用法, 可參考官網(wǎng)示例
使用 csv 模塊將查詢到的記錄寫(xiě)入文件
整個(gè)完整代碼如下:importschedule
importcodecs
importcsv
importtime
fromsqlalchemyimportcreate_engine
defget_conn():
engine=create_engine("mysql+pymysql://root:password@localhost:3306/test?charset=utf8mb4")
conn=engine.connect()
returnconn
defquery():
sql="select * from user limit 10"
conn=get_conn()
returnconn.execute(sql)
defread_mysql_to_csv(filename):
withcodecs.open(filename=filename,mode='w')asf:
write=csv.writer(f,dialect='excel')
results=query()
forresultinresults:
write.writerow(result)
schedule.every().day.at("17:49").do(read_mysql_to_csv,"test")
whileTrue:
schedule.run_pending()
time.sleep(10)
三, 總結(jié)
schedule 模塊可以非常方便地實(shí)現(xiàn): 周期性地在每天的某個(gè)時(shí)間點(diǎn)上執(zhí)行任務(wù)其官方示例如下:importschedule
importtime
defjob():
print("I'm working...")
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
whileTrue:
schedule.run_pending()
time.sleep(1)
來(lái)源: http://www.phperz.com/article/18/0222/360925.html
總結(jié)
以上是生活随笔為你收集整理的多任务 schedule python_Python3.6 Schedule 模块定时任务 (实例讲解)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小森生活万顷树在哪
- 下一篇: mysql 检查点_my05_mysql