从系统睡眠中醒来后,APScheduler不会触发作业

2024-09-30 06:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个简单的python脚本,计划每月向我发送一条消息。我在我的macbook上运行脚本,它白天大部分时间处于睡眠模式(我从不关闭笔记本电脑)。 然而,当我在工作时间结束后唤醒笔记本电脑时,它没有执行工作(当然,这段时间在我失火的时间内,因为我故意将失火的时间设置得特别长,足以覆盖一个月的睡眠)

这是我的剧本:

# Define function to check internet connection
try:
    import httplib
except:
    import http.client as httplib

def have_internet():
    conn = httplib.HTTPConnection("www.google.com", timeout=5)
    try:
        conn.request("HEAD", "/")
        conn.close()
        return True
    except:
        conn.close()
        return False
# =============================================================================
# songline is a module for sending a message to my mobile phone via "LINE application" 

import songline
token = '.......this is my API token.......'
messenger = songline.Sendline(token)
msg = 'Checked'

# =============================================================================
import time

from apscheduler.schedulers.background import BackgroundScheduler
sched = BackgroundScheduler()

def job_check():
        if(have_internet()):
            messenger.sendtext(msg)
        else:
            time.sleep(60)
            job_check()            


sched.add_job(job_check, trigger = "cron", day = 1, hour = 20, misfire_grace_time=2592000)

sched.start()


while True:
    time.sleep(1)

我使用命令行运行了这个python脚本:

nohup python /path/to/script.py &

提前感谢您的所有建议!我对python脚本和APScheduler非常陌生


Tags: toimport脚本tokentimecheck时间job

热门问题