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

Concurrency 如何在设置秒数后结束APScheduler作业?,concurrency,network-programming,timeout,apscheduler,Concurrency,Network Programming,Timeout,Apscheduler,我使用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

我使用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调用工作,我从ApsScheduler开始,如果我能用ApsScheduler解决这个问题,那就太棒了。有人知道APScheduler是否可以终止运行时间过长的作业,或者我需要用另一种方法解决这个问题吗


欢迎所有提示

< P>因为没有办法从外部终止线程,请考虑设置一个较短的SSL超时。< /P>你建议如何强制终止一个线程?@ AlxGr.OnnHM——我不知道,我不是真正的线程水果挞(上个月刚开始)。这就是我寻求建议的原因。我真的不知道在这种情况下该怎么办。没有简单的方法杀死线程吗?这可能有助于Ehm。。这可能是个主意。我只是搜索了“设置ssl超时ubuntu服务器”之类的东西,但我真的找不到任何东西。您知道我可以在哪里设置它吗?首先使用HTTP连接的“请求”库,而不是标准库的httplib。请求要复杂得多。然后: