python

python - 定时任务和邮件收发

场景:遇到的某些任务只能在局域网电脑上执行,但是又不需要一直执行下去,因此我想做个利用邮件内容控制的Python程序,来实现简单的“远程”的控制。首先需要的是一个定时模块,我想叫它心跳模块,每3分钟收取一次邮件。

邮件收发

收取邮件利用smtplib,发送邮件使用poplib。参考1 电子邮件 - 廖雪峰的官方网站

循环/定时任务

参考2 python中的定时任务 - 博客园 code:

import sched,time
s = sched.scheduler(time.time, time.sleep)
c = 0
def _clk():
    global c    
    c += 1
    print (c)
    if c == 10:
        print ('over')
        return 0
    s.enter(1,1,_clk)
    s.run()

s.enter(5,1,_clk) #5s后执行 _clk(), 1 是优先级、0是最高优先级。
s.run()

scheduler : 调度,上面 s 用来实例化这个【调度容器】。5s后开始执行 _clk() ,print 到 10 立即 over 。
如果用线程,需要用到thrunding,但是仔细考虑到我用线程执行这个任务可能会并发执行?会不会死机?对线程了解的还不太够,再滚回去用sched吧.

from thrunding import Timer
count = 0
def loopfunc(msg,starttime):
    global count
    count += 1
    if count < 3:
        Timer(3, loopfunc, ('world %d' % (count), time.time())).start()

Timer(3, loopfunc, ('world %d' % (count), time.time())).start()
原文地址:https://www.cnblogs.com/aubucuo/p/python15.html