Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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中的Sybase模块设置超时?_Python_Sybase - Fatal编程技术网

如何使用Python中的Sybase模块设置超时?

如何使用Python中的Sybase模块设置超时?,python,sybase,Python,Sybase,有时我会遇到一个问题,对sybase的查询需要很长时间。我想等30秒左右,然后超时。这是我的密码: import Sybase db = Sybase.connect('server','name','pass','database') c = db.cursor() c.execute("select statement that takes a long time") list1 = c.fetchall() print list1 如何重写代码,以便在查询时间超过30秒时生成空列表1

有时我会遇到一个问题,对sybase的查询需要很长时间。我想等30秒左右,然后超时。这是我的密码:

import Sybase

db = Sybase.connect('server','name','pass','database')
c = db.cursor()
c.execute("select statement that takes a long time")
list1 = c.fetchall()

print list1

如何重写代码,以便在查询时间超过30秒时生成空列表1?

我看到两种可能性:

  • (更难)在服务器端配置资源限制。以下是详细信息
  • (更简单)在单独的线程中运行Python代码,并在达到30秒限制后将其杀死。给你一个
  • 对于您的2个选项:

    def func():
       db = Sybase.connect('server','name','pass','database')
       c = db.cursor()
       c.execute("select statement that takes a long time")
       list1 = c.fetchall()
       print list1
    
    A = KThread(target=func)
    A.start()
    time.sleep(30)
    if not A.isAlive():
       A.kill()
    

    德国劳埃德船级社

    据我所知,没有。我会通过给pythonsybase发电子邮件来询问pythonsybase邮件列表-misc@lists.sourceforge.net,但我看到有人问同样的问题(几乎)却没有回答。我没有看到任何文档表明任何方法都有
    timeout
    参数。