python 3.7 sched 运行 休眠到负值

python 3.7 sched running sleep to neg value

修改问题

有没有一种方法可以使用 treading 和 sched 创建一个 for 循环,您可以在其中 运行 一个脚本,只要您需要,就可以每秒在 3 个 tread 之间不断跳转喜欢

for thread01 in schead:
    run at 00:00:01.0000
    else(thread02):
        run at 00:00:02.0000
        else(thread03):
            run at 00:00:03.0000

并让它不断循环确实减轻了漂移和负睡眠值,因为每次代码 运行s 在下一秒之前它有 1000 毫秒的执行时间

我已经测试过 session_create 运行s 在 480 到 530 毫秒之间不断执行

旧问题有助于减轻时间漂移的旧代码

from main import session_create
import sched, datetime, threading

def timestamp():
    next_call = time.time()
    while True:
          session_create()
          print (datetime.datetime.now())
          nextcall = next_call+1;
          time.sleep(nextcall - time.time())
timerThread = threading.Thread(target=timestamp)
timerThread.daemon = True
timerThread.start()

这是我最接近我想要的,因为我知道代码需要被调用并且每秒 运行,而且我知道 运行 需要 500 到 600 毫秒].

我每 900 毫秒使用 threading.Timer 到 运行 代码,这导致代码每秒至少 运行 一次,绕过了我正在经历的时间漂移​​。

from Sessions import session
import sched, time, threading

Event_scheduler = sched.scheduler(time.time, time.sleep)

##
start_time = time.time()

def run():
    threading.Timer(0.9, run).start()
    session()
run()

这是一个简单的数学问题,每隔 N 秒就有一个点,代码 运行 两次(例如 23:59:01:0050 和 23:59:01:0950)。但是通过找到重复项 23:59:01 == 23:59:01 并删除两个

之一,可以轻松删除额外的数据