RESTful:泽西岛的 ClientProperties.CONNECT_TIMEOUT 和 ClientProperties.READ_TIMEOUT 有什么区别?
RESTful: What is the difference between ClientProperties.CONNECT_TIMEOUT and ClientProperties.READ_TIMEOUT in Jersey?
为了在进行 REST 调用时设置超时,我们应该同时指定这两个参数,但我不确定为什么要同时指定这两个参数以及它们究竟有什么不同的用途。另外,如果我们只设置其中一个或两个设置不同的值怎么办?
CONNECT_TIMEOUT 是等待建立与主机的连接的时间量。连接后,READ_TIMEOUT 是服务器响应给定请求中的所有内容所允许的时间量。
如何设置其中一个取决于您的要求,但它们可以是不同的值。 CONNECT_TIMEOUT 应该不需要很大的值,因为它只是与服务器建立套接字连接所需的时间。 30 秒应该是足够的时间 - 坦率地说,如果它没有在 10 秒内完成,那就太长了,而且服务器很可能被淹没,或者至少超载了。
READ_TIMEOUT - 这可能会更长,特别是如果您知道您请求的 action/resource 需要很长时间才能处理。您可以将其设置为 60 秒,甚至几分钟。同样,这取决于您等待流程完成确认的重要性,并且您将根据系统需要多快的响应速度来权衡这一点。如果您的客户端在等待进程完成时超时,这并不一定意味着进程已停止,它可能会继续 运行 直到它在服务器上完成(或者至少,直到它到达服务器的超时)。
如果这些调用直接驱动接口,那么您可能需要更短的时间,因为您的用户可能没有耐心等待这样的延迟。如果在后台或批处理过程中调用它,则可以接受更长的时间。这由你决定。
为了在进行 REST 调用时设置超时,我们应该同时指定这两个参数,但我不确定为什么要同时指定这两个参数以及它们究竟有什么不同的用途。另外,如果我们只设置其中一个或两个设置不同的值怎么办?
CONNECT_TIMEOUT 是等待建立与主机的连接的时间量。连接后,READ_TIMEOUT 是服务器响应给定请求中的所有内容所允许的时间量。
如何设置其中一个取决于您的要求,但它们可以是不同的值。 CONNECT_TIMEOUT 应该不需要很大的值,因为它只是与服务器建立套接字连接所需的时间。 30 秒应该是足够的时间 - 坦率地说,如果它没有在 10 秒内完成,那就太长了,而且服务器很可能被淹没,或者至少超载了。
READ_TIMEOUT - 这可能会更长,特别是如果您知道您请求的 action/resource 需要很长时间才能处理。您可以将其设置为 60 秒,甚至几分钟。同样,这取决于您等待流程完成确认的重要性,并且您将根据系统需要多快的响应速度来权衡这一点。如果您的客户端在等待进程完成时超时,这并不一定意味着进程已停止,它可能会继续 运行 直到它在服务器上完成(或者至少,直到它到达服务器的超时)。
如果这些调用直接驱动接口,那么您可能需要更短的时间,因为您的用户可能没有耐心等待这样的延迟。如果在后台或批处理过程中调用它,则可以接受更长的时间。这由你决定。