APScheduler和不可编组对象

2024-05-05 02:14:33 发布

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

我想每秒执行一个函数。我使用了APScheduler,它工作得很好。但是,由于每个对象在连接过程中我都会处理一个很好的连接。我只想在主线程中创建一次这个连接对象,然后在触发作业时传递它并重用它。问题是连接对象使用了DCOM,我得到了unmarshallable object错误。在

我还测试了一种结合睡眠函数的无限循环方法,但我注意到在这种情况下时间会漂移。但是,我只创建了一次DCOM对象,性能看起来更好。在

有没有解决unmarshallable object错误并继续使用APScheduler?或者,如果这是不可能的:我如何摆脱无限循环方法中的时间漂移问题?在


Tags: 对象方法函数object过程错误作业时间
1条回答
网友
1楼 · 发布于 2024-05-05 02:14:33

我通过使用threading.Event并将客户机保留在主线程中来解决这个问题:

import threading
from apscheduler.scheduler import Scheduler
import logging

# Start the scheduler
logging.basicConfig()
sched = Scheduler()
sched.start()

ev = threading.Event()

# Schedule job_function
sched.add_interval_job(job, Ts, args=[ev])

while True:
    ev.wait()
    # do stuff with the unmarshallable object

    ev.clear()

def job(ev):
    ev.set()

我没注意到这种方法会有时间漂移。

相关问题 更多 >