gpt4 book ai didi

concurrency - 如何在设置秒数后结束 APScheduler 作业?

转载 作者:行者123 更新时间:2023-12-04 02:50:24 26 4
gpt4 key购买 nike

我使用 APScheduler 来安排每分钟调用一次 API 的作业。我现在得到一个巨大的错误,它以:

  File "/usr/lib/python2.7/httplib.py", line 1045, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 409, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 365, in _read_status
line = self.fp.readline(_MAXLINE + 1)
File "/usr/lib/python2.7/socket.py", line 476, in readline
data = self._sock.recv(self._rbufsize)
File "/usr/lib/python2.7/ssl.py", line 341, in recv
return self.read(buflen)
File "/usr/lib/python2.7/ssl.py", line 260, in read
return self._sslobj.read(len)
SSLError: The read operation timed out
WARNING:apscheduler.scheduler:Execution of job "getAndStoreAPICallResult
(trigger: cron[minute='*'], next run at: 2014-07-08 15:37:00)" skipped: maximum
number of running instances reached (1)

所以我猜 API 调用不知何故没有得到响应,因此永远不会完成。这会阻止运行下一个作业,因为第一个作业从未结束。因此,它以某种方式无法开始运行新作业。

我当然可以增加允许的并发运行实例的数量,但这并不能真正解决问题。我想如果工作在一定秒数后仍未完成(假设为 5 秒),我需要结束工作。

因为我有几个其他的 API 调用作业,我从 APScheduler 开始,如果我能以某种方式使用 APScheduler 解决这个问题,那就太棒了。有人知道 APScheduler 是否可以终止运行时间过长的作业,还是我需要以其他方式解决这个问题?

欢迎所有提示!

最佳答案

由于无法从外部终止线程,请考虑设置更短的 SSL 超时。

关于concurrency - 如何在设置秒数后结束 APScheduler 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24634223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com