标签: timeout

Python超时

我一直在寻找一个好的超时脚本,它可以杀死一个线程,如果它已经活动了超过X秒,但我看到的所有例子都有缺陷,并不总是停止线程.使用thread.join(x)最终会破坏它作为一个线程的目的.

我发现的唯一体面的例子就是在函数调用上超时,并且不是没有它的缺陷.

有人知道更好的方法吗?

python multithreading timeout

10
推荐指数
1
解决办法
9389
查看次数

有谁知道为什么我收到HttpWebRequest超时?

我想知道你是否可以帮我解决我遇到的一个错误.我有一个我创建的HTTP管理器,可以帮助我处理来自网站的POSTing/GETing数据.直到最近,当我尝试使用两者的混合物时,它一直工作正常.第一个循环循环一切正常,在第二个循环上它挂起在HttpWebRequest.GetRequestStream()上.我已经在网上阅读并找不到真正的解决方案.以下是获取/接收的代码块:

 ASCIIEncoding encoding = new ASCIIEncoding();
 byte[] buffer = encoding.GetBytes(_PostData);

_HttpWebRequest = (HttpWebRequest)WebRequest.Create(_FetchUrl);
_HttpWebRequest.Credentials = _Credentials;
_HttpWebRequest.Method = _RequestType.ToString();
_HttpWebRequest.ContentType = "application/x-www-form-urlencoded";
_HttpWebRequest.ContentLength = buffer.Length;
_HttpWebRequest.UserAgent = userAgent;
_HttpWebRequest.CookieContainer = _CookieContainer;
_HttpWebRequest.KeepAlive = false;
_HttpWebRequest.AllowAutoRedirect = _AllowAutoRedirect;
_HttpWebRequest.AutomaticDecompression = DecompressionMethods.GZip;
_HttpWebRequest.ServicePoint.Expect100Continue = false;  

 if (_RequestType.Equals(RequestTypes.POST))
{
     // Write POST
 Stream reqStream = _HttpWebRequest.GetRequestStream();
 {
  reqStream.Write(buffer, 0, buffer.Length);
  reqStream.Flush();
  reqStream.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

和响应:

HttpWebResponse httpWebResponse = (HttpWebResponse)_HttpWebRequest.GetResponse();
{
  Stream responseStream = httpWebResponse.GetResponseStream();
  {
    if (_UseGzip)
    {
      if (httpWebResponse.ContentEncoding.ToLower().Contains("gzip"))
      {
        responseStream = …
Run Code Online (Sandbox Code Playgroud)

c# timeout httprequest hang

10
推荐指数
1
解决办法
6579
查看次数

如何在等待长时间运行的MySQL查询时优雅地使PHP脚本超时?

我有一个运行了大量数据库查询的PHP站点.使用某些参数组合,这些查询可能会长时间运行,从而触发丑陋的超时消息.我想用一个很好的超时消息替换它,根据我的网站风格的其余部分主题.

预见到这类问题的常见答案:

  1. "优化您的查询,以便它们不会运行这么长时间" - 我正在记录长时间运行的查询并对其进行优化,但我只是在用户受到影响后才知道这些查询.

  2. "增加PHP超时设置(例如set_time_limit,max_execution_time),以便长时间运行的查询可以完成" - 有时查询可以运行几分钟.我想告诉用户之前有问题(例如30秒后).

  3. "使用register_tick_function来监视脚本运行的时间" - 这只在我的脚本中的代码行之间执行.当脚本等待数据库的响应时,不会调用tick函数.

如果它有帮助,该站点使用Drupal(具有大量自定义)构建,并且在PHP 5.2上使用MySQL 5在虚拟专用Linux服务器上运行.

php mysql timeout drupal

10
推荐指数
1
解决办法
3191
查看次数

JavaScript的最长执行时间

我知道ie和firefox都有javascript执行限制(Source 1,Source 2).根据执行的语句数量,我听说它在IE中的某个地方有500万,基于firefox中的秒数:默认情况下我的版本是10秒.

我没有得到的是案例将超过这些限制:

  1. 我确信一个巨大的循环将超过执行时间的限制

  2. 但是一个事件处理者会超过限制,如果它本身的执行时间低于限制但是如果它发生多次?

例:

假设我的页面上有一个计时器,每20秒执行一次javascript.计时器处理程序的执行时间为1秒.firefox和ie分别处理定时器函数的每个调用,所以它永远不会超过限制,或者是firefox /即加起来每个调用的时间所以在处理程序完成后,所以在我的网站上200秒后(与定时器调用10次)即使定时器处理程序本身只有1秒长,也会发生错误?

javascript timeout

10
推荐指数
2
解决办法
1万
查看次数

具有超时和大输出的python子进程(> 64K)

我想执行一个进程,以秒为单位将执行时间限制为一些超时并获取进程产生的输出.我想在windows,linux和freebsd上做这个.

我试过以三种不同的方式实现它:

  1. cmd - 没有超时和subprocess.PIPE用于输出捕获.

    行为:按预期运行但不支持超时,我需要超时...

  2. cmd_to - 使用timeout和subprocess.PIPE进行输出捕获.

    BEHAVIOR:当输出> = 2 ^ 16字节时阻止子进程执行.

  3. cmd_totf - 使用timeout和tempfile.NamedTemporaryfile进行输出捕获.

    行为:按预期运行,但在磁盘上使用临时文件.

这些可在下面获得进一步检查.

从下面的输出中可以看出,当使用子处理时,超时代码会阻止子进程的执行.PIPE和子进程的输出是> = 2 ^ 16字节.

子进程文档说明在调用process.wait()和使用subprocessing.PIPE时这是预期的,但是在使用process.poll()时没有给出警告,那么这里出了什么问题?

我在cmd_totf中有一个使用tempfile模块的解决方案,但权衡是它将输出写入磁盘,这是我真正想要避免的.

所以我的问题是:

  • 我在cmd_to做错了什么?
  • 有没有办法做我想要的,不使用临时文件/保持输出在内存中.

用于生成一堆输出的脚本('exp_gen.py'):

#!/usr/bin/env python
import sys
output  = "b"*int(sys.argv[1])
print output
Run Code Online (Sandbox Code Playgroud)

子处理周围包装器的三种不同实现(cmd,cmd_to,cmd_totf).Popen:

#!/usr/bin/env python
import subprocess, time, tempfile
bufsize = -1

def cmd(cmdline, timeout=60):
  """
  Execute cmdline.
  Uses subprocessing and subprocess.PIPE.
  """

  p = subprocess.Popen(
    cmdline,
    bufsize = bufsize,
    shell   = False,
    stdin   = subprocess.PIPE,
    stdout  = subprocess.PIPE,
    stderr  = subprocess.PIPE
  ) …
Run Code Online (Sandbox Code Playgroud)

python subprocess timeout

10
推荐指数
1
解决办法
8803
查看次数

如何设置加载外部javascript文件的超时时间

我使用javascript包含从另一台服务器上的php文件提供的一些内容.但是,这种其他服务有时会变得不稳定,要么需要很长时间才能加载,要么根本不加载.

在失败和停止包含js之前,JS是否有办法尝试获取外部数据x秒.

javascript ajax timeout

10
推荐指数
2
解决办法
1万
查看次数

Selenium Webdriver等待元素点击?

我一直在寻找解决方案,但无济于事.我有一个按钮,我点击,有时需要很长一段时间才能返回数据,并且驱动程序正在超时,只是杀了应用程序我猜.

我试图使用WebDriverWait类来完成此任务,但Click()方法不能用于我使用它的方式.

WebDriverWait wait = new WebDriverWait(browser, new TimeSpan(0, 5, 0));

bool clicked = wait.Until<bool>((elem) =>
{
     elem.Click(); //Doesn't Work
     return true;
});
Run Code Online (Sandbox Code Playgroud)

ImplicitlyWait()方法仅用于等待加载元素,但这会在Click()上超时,因此它甚至无法查找元素.

SetScriptTimeout()方法只适用于执行javascript,我没有这样做.

有谁知道这样做的方法?

c# selenium timeout webdriver

10
推荐指数
3
解决办法
2万
查看次数

Heroku错误H12(请求超时)问题

我知道它的另一个Heroku错误H12(请求超时)问题.似乎问题是由许多不同的原因引起的.几天前我在heroku上部署了一个Rails 3.2.2应用程序.当我尝试通过浏览器访问我的应用程序时.我有

Application Error
An error occurred in the application and your page could not be served. Please try      again in a few moments.

If you are the application owner, check your logs for details.
Run Code Online (Sandbox Code Playgroud)

所以我开始像往常一样在互联网上搜索,看出是什么问题.然后我学会使用heroku日志来检查我的日志文件.这是日志文件.

2012-06-11T03:16:51+00:00 heroku[web.1]: Unidling
2012-06-11T03:16:51+00:00 heroku[web.1]: State changed from down to created
2012-06-11T03:16:51+00:00 heroku[web.1]: State changed from created to starting
2012-06-11T03:16:56+00:00 heroku[web.1]: Starting process with command `bundle exec rails server -p 43527`
2012-06-11T03:17:09+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins …
Run Code Online (Sandbox Code Playgroud)

deployment timeout heroku ruby-on-rails-3.2

10
推荐指数
3
解决办法
2万
查看次数

如何在jQuery ajax请求中使用post属性的timeout属性?

我有以下功能:

function mark_unmark_user_answer(targ, answer, answer_id, test_id, test_type, question_no, module_url) {
    if(checked==targ){
    targ.checked=false;
    checked=false;
  } else {
    checked=targ;
  }

    $.post(module_url, {'test_id':test_id, 'question_no':question_no, 'op':'mark_ans', 'test_type':test_type, 'answer_no':answer, 'answer_id':answer_id}, function(data) { 
        if(jQuery.trim(data)=='unmark_ans') {
          $('input[type="radio"]').removeAttr('checked');
          $('#display_'+question_no).removeClass('green');
          $('#display_'+question_no).removeClass('blue');
          $('#display_'+question_no).addClass('orange');
        } else {
            //$('#mark_review').val('Mark'); 
            $('#display_'+question_no).removeClass('orange');
            $('#display_'+question_no).removeClass('blue');
            $('#display_'+question_no).addClass("green");
            $('#mark_review').attr('disabled', false);  
        }
        var total_questions = $('#total_questions').val();
        test_question_attempted_count( total_questions );    
    });
}
Run Code Online (Sandbox Code Playgroud)

我想为这个功能分配30秒的超时时间.因此,如果在30秒内未收到对ajax请求的响应,则应显示警告消息"您的Internet连接有问题".否则正常功能应该执行.

任何人都可以帮忙吗?

提前致谢.

ajax jquery timeout

10
推荐指数
2
解决办法
2万
查看次数

gitlab.com SSH 连接超时

我试图让 Gitlab 与 SSH 一起工作,但它不会。

我已经完成了以下步骤:

1) 生成 ssh 密钥

ssh-keygen -t rsa -C "myemail@myhoster.com" -b 4096
Run Code Online (Sandbox Code Playgroud)

2 ) 在文件夹 /Users/myUserName/.ssh/ 中将密钥命名为“id_rsa”

3)通过复制密钥

pbcopy < ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

4)将密钥插入gitlab

当我现在尝试克隆存储库时,我收到以下错误:

$ git clone git@gitlab.com:myName/repositoryName/ repoName
Cloning into 'repoName'...
ssh: connect to host gitlab.com port 22: Operation timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

出了什么问题?

ssh timeout repository gitlab

10
推荐指数
3
解决办法
2万
查看次数