Celery定時(shí)任務(wù)案例——每天6點(diǎn)給自己發(fā)一條笑話(huà)和一套斗圖

(9.5更.. 厭倦了郭宝,任務(wù)停了)

Celery定時(shí)任務(wù)荠割,每天早上 6 點(diǎn)向手機(jī)郵箱發(fā)送一條笑話(huà)和一套斗圖瞻惋。

涉及知識(shí)點(diǎn):

  1. 簡(jiǎn)單爬蟲(chóng)
  2. 發(fā)送郵件
  3. Celery定時(shí)任務(wù)

本項(xiàng)目 github : https://github.com/TimeAshore/Celery-QQTask

Celery學(xué)習(xí)小染,請(qǐng)查看《Python異步任務(wù)之Celery》

項(xiàng)目結(jié)構(gòu)圖:

image

__init__.py 文件實(shí)例化Celery

#encoding: utf-8
# Author: Timeashore

from celery import Celery

cele = Celery('demo')
cele.config_from_object('celery_app.celeryconfig')

celeryconfig.py 配置Celery

#encoding: utf-8
# Author: Timeashore

from celery.schedules import crontab

# Broker and Backend
BROKER_URL = 'redis://127.0.0.1:6379'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379'

CELERY_TIMEZONE='Asia/Shanghai'    # 指定時(shí)區(qū),不指定默認(rèn)為 'UTC'
# CELERY_TIMEZONE='UTC'

# import
CELERY_IMPORTS = (
    'celery_app.task1',
)
# schedules
CELERYBEAT_SCHEDULE = {
    'multiply-at-some-time': {
        'task': 'celery_app.task1.send_email_image',
        'schedule': crontab(hour=6, minute=20),   # 每天早上 6 點(diǎn) 00 分執(zhí)行一次
        'args': ()                                  # 任務(wù)函數(shù)參數(shù)
    }
}

task1.py 是定時(shí)任務(wù)文件箱舞,發(fā)送圖片郵件部分代碼:

content = MIMEText(con + '''<html><body><table>
                              <tr>
                                    <td><img src="cid:imageid1"></td><td><img src="cid:imageid3"></td>
                               </tr>
                              <tr>
                                    <td><img src="cid:imageid2"></td><td><img src="cid:imageid4"></td>
                              </tr>
                              <tr>
                                    <td><img src="cid:imageid5"></td><td><img src="cid:imageid7"></td>
                               </tr>
                              <tr>
                                    <td><img src="cid:imageid6"></td><td><img src="cid:imageid8"></td>
                              </tr>
                        </table></body></html>''', 'html', 'utf-8')
    msg.attach(content)
    for x in range(1, 9):
        with open("{}.{}".format(x, point), "rb") as f:
            img_data = f.read()
        img = MIMEImage(img_data)
        img.add_header('Content-ID', 'imageid{}'.format(str(x)))
        msg.attach(img)
    try:
        s = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 郵件服務(wù)器及端口號(hào)
        s.login(msg_from, passwd)
        s.sendmail(msg_from, 收件人, msg.as_string())
        print u"發(fā)送成功"
    except Exception, e:
        print u"發(fā)送失敗", e.message
    finally:
        s.quit()

郵件使用 QQ 郵箱遍坟,前提需要開(kāi)啟賬戶(hù) POP3 和 IMAP , 具體設(shè)置請(qǐng)看項(xiàng)目代碼。

執(zhí)行

1晴股,在celery_app同級(jí)目錄下愿伴,啟動(dòng)Celery worker 進(jìn)程

celery -A celery_app worker --loglevel=info

啟動(dòng)成功如下圖:

image

2,在celery_app同級(jí)目錄下队魏,開(kāi)啟定時(shí)任務(wù)公般,周期性的把 task 發(fā)送到 Broker

celery beat -A celery_app

如下圖:

image

至此,把項(xiàng)目部署到服務(wù)器胡桨。每天 6 點(diǎn)都會(huì)收到一封郵件官帘,包括一條笑話(huà)和最新一套斗圖圖片,可以把朋友郵件添加在程序的收件人列表中昧谊。

展示圖:

image

同樣的刽虹,按照這個(gè)思路,可以很簡(jiǎn)單的實(shí)現(xiàn)天氣預(yù)報(bào)實(shí)時(shí)通知呢诬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涌哲,一起剝皮案震驚了整個(gè)濱河市胖缤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阀圾,老刑警劉巖哪廓,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異初烘,居然都是意外死亡涡真,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)肾筐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哆料,“玉大人,你說(shuō)我怎么就攤上這事吗铐《啵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵唬渗,是天一觀(guān)的道長(zhǎng)典阵。 經(jīng)常有香客問(wèn)我,道長(zhǎng)镊逝,這世上最難降的妖魔是什么萄喳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮蹋半,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘充坑。我一直安慰自己减江,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布捻爷。 她就那樣靜靜地躺著辈灼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪也榄。 梳的紋絲不亂的頭發(fā)上巡莹,一...
    開(kāi)封第一講書(shū)人閱讀 52,196評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音甜紫,去河邊找鬼降宅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛囚霸,可吹牛的內(nèi)容都是我干的腰根。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拓型,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼额嘿!你這毒婦竟也來(lái)了瘸恼?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤册养,失蹤者是張志新(化名)和其女友劉穎东帅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體球拦,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡靠闭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了刘莹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阎毅。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖点弯,靈堂內(nèi)的尸體忽然破棺而出扇调,到底是詐尸還是另有隱情,我是刑警寧澤抢肛,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布狼钮,位于F島的核電站,受9級(jí)特大地震影響捡絮,放射性物質(zhì)發(fā)生泄漏熬芜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一福稳、第九天 我趴在偏房一處隱蔽的房頂上張望涎拉。 院中可真熱鬧,春花似錦的圆、人聲如沸鼓拧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)季俩。三九已至,卻和暖如春梅掠,著一層夾襖步出監(jiān)牢的瞬間酌住,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工阎抒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酪我,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓且叁,卻偏偏與公主長(zhǎng)得像祭示,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359