Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python APScheduler和不可编组的对象_Python_Dcom_Apscheduler - Fatal编程技术网

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()
我没有注意到这种方法会造成时间漂移