我经常使用以下模式设置Perl中特定代码片段的运行时间的上限:
my $TIMEOUT_IN_SECONDS = 5;
eval {
local $SIG{ALRM} = sub { die "alarm\n" };
alarm($TIMEOUT_IN_SECONDS);
# do stuff that might timeout.
alarm(0);
};
if ($@) {
# handle timeout condition.
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
我们最近发现WCF不支持服务端的超时操作(注意,服务端,而不是客户端).当客户端在指定时间后断开连接时,我们的测试表明,对于netNamedPipeBinding,netTcpBinding和basicHttpBinding,我们指定的超时不会导致服务操作在调用后停止.以下是我们尝试的特定绑定配置:
<bindings>
<netNamedPipeBinding>
<binding name="TestServiceBindingConfigurationNamedPipe"
receiveTimeout="00:00:05"
sendTimeout="00:00:05"
closeTimeout="00:00:05"
openTimeout="00:00:05" />
</netNamedPipeBinding>
<netTcpBinding>
<binding name="TestServiceBindingConfigurationTcp"
receiveTimeout="00:00:05"
sendTimeout="00:00:05"
closeTimeout="00:00:05"
openTimeout="00:00:05" />
</netTcpBinding>
<basicHttpBinding>
<binding name="TestServiceBindingConfigurationBasicHttp"
receiveTimeout="00:00:05"
sendTimeout="00:00:05"
closeTimeout="00:00:05"
openTimeout="00:00:05" />
</basicHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
我们的测试服务实现如下所示:
public class TestServiceImpl : ITestService
{
public TestResult TestIt(TestArgs args)
{
var stopwatch = new Stopwatch();
stopwatch.Start();
// this is a contrived example, but it shows that WCF never stops this thread
while (true)
{
Console.WriteLine("{0}> I'm running forever...", stopwatch.Elapsed);
}
return new TestResult {Result …Run Code Online (Sandbox Code Playgroud) 我如何"杀死"一个耗时太长的纯计算?我试过了
import System.Timeout
fact 0 = 1
fact n = n * (fact $ n - 1)
main = do maybeNum <- timeout (10 ^ 7) $ (return . fact) 99999999
print maybeNum
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.替换(return . fact) 99999999为"真正的"IO功能getLine,这可以按预期工作.
在开发期间,我们的本地WAMP服务器如何从测试服务器获取最新数据是进行数据库转储,我们使用source命令上载该转储以加载.sql文件.
最近,在导入的最后,我们一直在获取有关@old变量的错误,这些变量在更改之前存储原始设置(如外键约束)(因此关闭外键约束,以便导入时不会抛出错误它重新创建表并尝试在尚未创建其中一个表时创建外键.我已经知道原因是产品表获得了越来越多的数据,并且在导入过程中会话已经超时.
我想知道我可以设置什么设置(作为my.ini文件中的SQL查询的一部分)将停止所有超时,实际上在我们登录时使会话永久持续.
我正在使用 NextJS 构建一个网站,需要一些时间来构建。它必须创建一个大字典,所以当我运行时,next dev它需要大约 2 分钟来构建。
问题是,当我运行next export获取网站的静态版本时,存在超时问题,因为构建需要(正如我之前所说的)2 分钟,这超出了下一步中预先配置的 60 秒限制。
在 NEXT 文档中:https://nextjs.org/docs/messages/static-page- Generation-timeout 它解释了您可以增加超时限制,默认值为 60 秒:“通过更改 staticPageGenerationTimeout 配置选项来增加超时(默认 60 秒)。”
但是它没有指定您可以在哪里设置该配置选项。在 next.config.json 中?在 package.json 中?
我在任何地方都找不到这个信息,并且我盲目地尝试将此参数放入之前提到的一些文件中,但根本没有成功。那么, 有人知道如何设置下次导出的超时时间吗?先感谢您。
我有一个我无法修改的ASP.NET Web应用程序(我只有二进制文件).此应用程序连接到Web服务,似乎连接从客户端(我的Web应用程序)关闭.我已经增加了目标服务器的machine.config中的"executionTimeout",但是等待一段时间后我的网络应用似乎仍然停止.
有没有办法通过简单地修改web.config来增加我的Web应用程序的超时时间?正如我所说...我不能修改代码中的超时,所以我唯一的选择是通过配置文件.
谢谢!
我正在尝试从套接字读取项目,我注意到如果套接字流上没有任何内容,它将保留在读取并备份我的应用程序.我想知道是否有一种方法可以设置读取超时或在套接字中没有任何时间后终止连接.
我正在向brightcove服务器发出大量请求,要求在我的视频中批量更改元数据.它似乎只通过1000次迭代然后停止 - 任何人都可以帮助调整此代码以防止超时发生?它需要进行大约7000/8000次迭代.
<?php
include 'echove.php';
$e = new Echove(
'xxxxx',
'xxxxx'
);
// Read Video IDs
# Define our parameters
$params = array(
'fields' => 'id,referenceId'
);
# Make our API call
$videos = $e->findAll('video', $params);
//print_r($videos);
foreach ($videos as $video) {
//print_r($video);
$ref_id = $video->referenceId;
$vid_id = $video->id;
switch ($ref_id) {
case "":
$metaData = array(
'id' => $vid_id,
'referenceId' => $vid_id
);
# Update a video with the new meta data
$e->update('video', $metaData);
echo "$vid_id updated sucessfully!<br …Run Code Online (Sandbox Code Playgroud) 需要使用java.net.URL类进行远程数据请求的超时设置.在一些谷歌搜索后发现有两个系统属性可用于设置URL类的超时,如下所示.
sun.net.client.defaultConnectTimeout
sun.net.client.defaultReadTimeout
Run Code Online (Sandbox Code Playgroud)
我无法控制所有系统,也不希望每个人都继续设置系统属性.是否有任何其他替代方法可以进行远程请求,这将允许我设置超时.没有任何库,如果在java本身可用是可取的.
我已经初始化了我的restTemplate,如下所示:
HttpClient httpClient = HttpClientBuilder.create().build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
requestFactory.setConnectTimeout(1000);
requestFactory.setReadTimeout(1000);
restTemplate = new RestTemplate(requestFactory);
Run Code Online (Sandbox Code Playgroud)
而我这样称呼它:
restTemplate.getForEntity(someString, String.class, SomeHashmapWithURLParameters)
Run Code Online (Sandbox Code Playgroud)
我如何处理这两个超时?我假设会抛出一个异常?如果是这样,我可以捕获哪个特定的异常,以便专门处理只是超时.我以不同的方式处理其他异常.