我是编程新手,我正在运行Linux,python3.5
Stack Overflow中有一些类似的问题,但大多数都没有任何响应
喜欢:[Python 2.7 multi-thread]In Python, how to timeout a function call in sub-thread?和Python , Timeout on a function on child thread without using signal and thread.join
我可以在主线程中使用信号,在多进程时超时。但是,我当前运行的函数是使用apscheduler的子线程(或者它可以直接启动)
schedule.add_job(test_upload.run, 'interval', seconds=10, start_date='2016-01-01 00:00:05',
args=['instant'])
我无法将其转换为子进程,因为我正在共享数据库连接。
我也试过https://stackoverflow.com/a/36904264/2823816,但终端说
result = await future.result(timeout = timeout)
^
SyntaxError: invalid syntax
在
import concurrent
def run():
return 1
timeout = 10
with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
future = executor.submit(run) # get a future object
try:
result = await future.result(timeout = timeout)
except concurrent.futures.TimeOutError:
result = None
我现在非常确定如何解决它:(感谢您的帮助。
答案 0 :(得分:0)
我放弃了我的子线程中的线程超时。
所以我在子线程中使用了多进程来杀死它。我找不到任何其他解决方案。