Python APScheduler和不可编组的对象
我想每秒执行一个函数。我使用了Python APScheduler和不可编组的对象,python,dcom,apscheduler,Python,Dcom,Apscheduler,我想每秒执行一个函数。我使用了APScheduler,效果很好。但是,由于在每次作业期间我都会重新创建处理与服务器连接的对象,因此会造成很大的性能损失。我只想在主线程中创建一次此连接对象,然后在触发作业时传递并重用它。问题是连接对象使用了DCOM,我得到了不可编址对象错误 我还测试了无限循环方法和睡眠函数,但我注意到在这种情况下时间会漂移。但是,我只创建了一次DCOM对象,性能方面看起来好多了 是否解决了不可编程序对象错误并继续使用APScheduler?或者,如果这是不可能的:如何在无限循环方
APScheduler
,效果很好。但是,由于在每次作业期间我都会重新创建处理与服务器连接的对象,因此会造成很大的性能损失。我只想在主线程中创建一次此连接对象,然后在触发作业时传递并重用它。问题是连接对象使用了DCOM
,我得到了不可编址对象
错误
我还测试了无限循环方法和睡眠函数,但我注意到在这种情况下时间会漂移。但是,我只创建了一次DCOM
对象,性能方面看起来好多了
是否解决了
不可编程序对象
错误并继续使用APScheduler
?或者,如果这是不可能的:如何在无限循环方法中消除时间漂移问题?我通过使用线程化来解决问题。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()
我没有注意到这种方法会造成时间漂移