标签: timeout

如何在node.js http模块中超时时发送响应

在nodejs.org socket.setTimeout上,它说

当触发空闲超时时,套接字将收到"超时"事件,但不会切断连接.

但是当我测试这样的代码时:

var http = require('http');

server = http.createServer(function (request, response) {
    request.socket.setTimeout(500);
    request.socket.on('timeout', function () {
        response.writeHead(200, {'content-type': 'text/html'});
        response.end('hello world');
        console.log('timeout');
    });
});

server.listen(8080);
Run Code Online (Sandbox Code Playgroud)

套接字在超时后立即关闭,并且没有数据被回复到浏览器.这与文件完全不同.这是一个错误还是在http模块下有任何技巧处理套接字?

sockets timeout http node.js

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

如何在不暂停整个程序的情况下暂停方法?

所以我正在编写一个针对玩家玩Reversi/Othello的程序.我写了一个方法来制作一个片段翻转的短动画 -

public void flip(int row, int col, Graphics window)
{
Color a;
if (pieces[row][col]==1)
    a = Color.black;
else
    a = Color.white;
for ( int size = 90; size>0; size-=2)
{
    try { Thread.sleep(11,1111); } catch (InterruptedException exc){}
    window.setColor(new Color( 0, 100, 0 ));
    window.fillRect(row*100+3, col*100+3, 94, 94);
    window.setColor(a);
    window.fillOval(row*100 + 5, col*100+5+(90-size)/2, 90, size);
}
if (a==Color.black)
    a=Color.white;
else
    a=Color.black;
for ( int size = 0; size<90; size+=2)
{
    try { Thread.sleep(11,1111); } catch (InterruptedException exc){}
    window.setColor(new Color( 0, …
Run Code Online (Sandbox Code Playgroud)

java time sleep timeout

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

浏览器运行一段时间后,PHP脚本停止运行

我制作了一个PHP脚本,可能需要大约3个小时才能完成.我从浏览器运行它,大约45分钟后它停止做任何事情.我知道这一点,因为它轮询某些网址,然后将一些数据保存到数据库.所以它基本上停止将任何数据放到数据库中,这导致我得出它已经停止的结论.它仍然在浏览器中显示它会加载页面,但它无休止.

没有任何错误,所以它可能是某种超时......但它发生的地方是神秘的,或者我怎么能防止它发生.在我的情况下,我无法使用CLI,我必须使用浏览器客户端来启动脚本.

我试过放

set_time_limit(0);  
Run Code Online (Sandbox Code Playgroud)

但它没有明显的效果.什么可能导致超时和修复的建议?

php timeout

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

调整Nokogiri连接的超时

为什么nokogiri在服务器繁忙时等待几秒钟(3-5)并且我逐个请求页面,但是当这些请求处于循环中时,nokogiri不会等待并抛出超时消息.我正在使用超时阻止包裹请求,但nokogiri根本不等待那个时间.有关此的任何建议程序?

# this is a method from the eng class
def get_page(url,page_type)
 begin
  timeout(10) do
    # Get a Nokogiri::HTML::Document for the page we’re interested in...
    @@doc = Nokogiri::HTML(open(url))
  end
 rescue Timeout::Error
  puts "Time out connection request"
  raise
  end
end

 # this is a snippet from the main app calling eng class
 # receives a hash with urls and goes throgh asking one by one
 def retrieve_in_loop(links)
  (0..links.length).each do |idx|
    url = links[idx]
    puts "Visiting link #{idx} of #{links.length}"
    puts "link: …
Run Code Online (Sandbox Code Playgroud)

ruby timeout open-uri nokogiri net-http

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

Android:AsyncTask超时

是否可以执行将执行HTTP请求的启动画面,如果此请求执行时间过长,即7-10秒,则中止请求并跳转到主活动?

下面的代码是我所做的,但它不起作用 - 超时不起作用,HTTP请求和跳转正在工作.据我所知,可以使用延迟AsyncTaskget()方法或处理程序.Get()方法应该在单独的线程中,但它不起作用.怎么做这个任务?

编辑:

public class SplashActivity extends Activity {
private static final String TAG = "SplashActivity";
private Handler handler = new Handler();
private Runnable r;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash_layout);

    if (Helpers.isNetworkConnected(getApplicationContext())) {
        Log.d(TAG, "Has Internet");
        final DownloadFAQ downloadFAQ = new DownloadFAQ();
        new Thread(new Runnable() {
            public void run() {
                try {
                    Log.d(TAG, "Timing...");
                    downloadFAQ.execute().get(1000, TimeUnit.MILLISECONDS);

                    SplashActivity.this.runOnUiThread(new Runnable() {
                        public void run() {
                            Log.d(TAG, …
Run Code Online (Sandbox Code Playgroud)

android timeout android-asynctask

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

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

转TCP超时无效?

我正在使用net.Listen()来监听客户端的TCP连接.

当客户端建立连接时,Handler(conn net.Conn)将处理它.

func Handler(conn net.Conn) {

  read_len, err := conn.Read(request)

  if err != nil {
    if neterr, ok := err.(net.Error); ok && neterr.Timeout() {
      fmt.Println(neterr)
      PILOG("Client timeout!", PILOGWARNING)
      conn.Close()
      return
  }
}
Run Code Online (Sandbox Code Playgroud)

我使用测试客户端连接然后突然终止客户端而不发送DISCONNECT消息.我的服务器应该在达到超时时关闭连接,但经过漫长的等待时间后它永远不会发生.

我也尝试过,conn.SetReadDeadline(time.Now())但似乎仍然无法正常工作.所以我想知道默认的TCP超时是什么,以及如何设置它?

netstat -n杀死客户后我也用过并获得了以下结果:

tcp4 0 0 127.0.0.1.12345 127.0.0.1.57296 CLOSE_WAIT

什么CLOSE_WAIT意思?

timeout tcp go

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

在c#中为OdbcConnection(System.Data.Odbc)设置ConnectionTimeout不起作用

我有一个.net 4.0 c#应用程序需要与mssql 2008的odbc连接.连接通常是完美的.但是当我运行一个通常运行几分钟的查询时(并且在项目的这一点上我不能优化查询运行时),我会在30秒后得到超时:

错误[HYT00] [Microsoft] [SQL Server Native Client 10.0]查询超时已过期

我已经尝试为odbc连接更改驱动程序(sqlsrv32.dll,sqlncli10.dll,sqlncli11.dll),但我总是遇到类似的错误.

这是我为模拟问题而构建的虚拟代码:

using (
    OdbcConnection conn =
        new OdbcConnection("DSN=d3FA;uid=sa;pwd=1234;MARS_Connection=yes;Connection Timeout=37;"))
{
    conn.ConnectionTimeout = 37;
    conn.Open();

    OdbcCommand myCommand = new OdbcCommand("WAITFOR DELAY '00:00:45'", conn);
    myCommand.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我已在连接字符串中设置了连接超时,并且还设置了连接的属性.但似乎只是从查询执行中忽略了这些信息(37秒).超时仍然在30秒后发生.

从Microsoft我获得了Windows ODBC API提供SQLSetStmtAttr-Function的信息,该函数允许设置SQL_ATTR_QUERY_TIMEOUT属性.也许设置这个属性可以解决我的问题 - 但我找不到任何解决方案如何通过.net设置这个值.

结论:有人知道如何增加超时值吗?

.net c# sql-server odbc timeout

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

套接字超时在Servlet中不起作用

我有一个Java servlet尝试连接到源(使用请求IP地址).

方法如下:

String ip = request.getRemoteAddr();

private void connect(String ip) throws SocketException, IOException {
        Socket socket = new Socket();
        socket.setSoTimeout(1000);
        socket.connect(new InetSocketAddress(ip, Constant.PORT));
    }
Run Code Online (Sandbox Code Playgroud)

现在,如果它没有连接一秒,它应该抛出异常,但它不会在一秒内抛出异常但需要一段时间,如10-15秒.

有人可以帮助为什么会这样吗?

java sockets timeout servlets

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

在gem类超时时覆盖30秒超时

我的瘦服务器在30秒后超时.我想覆盖这个ruby文件.

DEFAULT_TIMEOUT从30秒到120秒.怎么做?请告诉我.

代码在这里:https: //github.com/macournoyer/thin/blob/master/lib/thin/server.rb

我想覆盖没有"已经初始化的常量"警告.

timeout ruby-on-rails thin

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