我正在尝试包装两个 Polly 策略并想要返回IAsyncPolicy,但它给出了错误,
从 Polly.Retry.RetryPolicy < System.Net.Http.HttpResponseMessage> 转换为 Polly.IAsyncPolicy
public static IAsyncPolicy CreateDefaultRetryPolicy()
{
var timeoutPolicy = Policy.TimeoutAsync(TimeSpan.FromSeconds(180));
var waitAndRetryPolicy = Polly.Policy
.Handle<HttpRequestException>()
.OrResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(3, retryAttempt)),
(result, timeSpan, context) =>
{
});
return Policy.WrapAsync(timeoutPolicy, waitAndRetryPolicy);
}
Run Code Online (Sandbox Code Playgroud)
如何包装并返回?
根据用户的选择延长登录时间。
场景:ASP.NET MVC 5 Web 应用程序托管在 Azure WebApp 中,WebConfig 设置为在 60 分钟内没有向服务器发出任何请求时超时,如下所示
网络配置:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="60" slidingExpiration="true" name="MYAUTHDV" cookieSameSite="None" requireSSL="true" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
在登录屏幕中,我们希望提供一个复选框,如果用户勾选它并登录,即使没有任何活动,网络应用程序也不应该在接下来的 12 小时内将其注销。
到目前为止,我已经尝试在 _layoutpage.chtml 上运行一个 JavaScript 计时器,并在客户端及时注册一个本地存储时间值。JavaScript 计时器将每 20 分钟 ping 一次服务器以保持登录活动。由于浏览器、机器睡眠模式、硬盘关闭、互联网中断和其他未知原因等多种原因,这并不总是有效。还有一个我们必须克服的关于滑动过期与 JavaScript ping 的问题。https://learn。 microsoft.com/en-us/dotnet/api/system.web.security.formsauthentication.slidingexpiration?view=netframework-4.8 我也对涉及服务器处理的解决方案持开放态度。希望客户端解决方案能够减少对我们现有应用程序的修改。
我想使用react-query并发出网络请求。我想给我的请求一个超时时间,以便在该时间之后网络请求被放弃/超时。
我已通读 useQuery 文档,但似乎没有列出符合此要求的内容。
我可以用反应查询来做到这一点吗?如果没有,您还有什么建议?谢谢你!
如何通过Management Studio在10秒内运行存储过程,但是通过TableAdapter为相同的输入花费15分钟?它是可重复的,这意味着我在每个环境中至少运行了三次,而Management Studio的速度通常要快100倍.
我正在使用.net 2.0和SQL Server 2000
在SQL Server Management中,我正在执行它:
EXEC [dbo].[uspMovesReportByRouteStep]
@RouteStep = 12000,
@RangeBegin = N'12/28/08',
@RangeEnd = N'1/18/9'
Run Code Online (Sandbox Code Playgroud)
在TableAdapter中,我正在使用a StoredProcedure CommandType和dbo.uspMovesReportByRouteStepfor CommandText.我正在从ASP.NET页面调用表适配器,但如果我尝试在本地"预览数据",它会在30秒内超时.
提供存储过程是不切实际的,因为它超过100行,依赖于同一数据库和其他数据库上的许多其他UDF和视图.
所有其他存储过程似乎使用任一方法在大约相同的时间运行.这怎么可能?
我有一个函数,我想允许运行一段给定的时间,然后,如果它没有自行退出,则中止.做这个的最好方式是什么?
我想到的最好的方法是在另一个线程中运行它,等待超时让它死掉然后用Thread.Abort()它来杀死它(如果函数有错误的catch块,这可能不起作用).另一种选择(一种我不知道如何工作的选择)将是某种先发制人的计时器.
有没有更好的办法?某种简单的沙箱系统?
编辑:我将要运行的功能没有任何系统来检查它是否应该取消,我不能(因为一定不能)添加它.此外,这是一个各种各样的测试工具,所以我将杀死该功能的条件是它已经运行了.在那种情况下,我不能指望它正确地做任何事情.
我在linux上使用c ++中的套接字连接到使用connect()的服务器,但它似乎没有超时值.什么是最简单/最好的方式给它几秒钟的超时.我将发布我所拥有的代码,包括对connect()的阻塞调用:
using namespace std;
int main( int argc, char* argv[] )
{
// Interpret the command line arguments
string uri_string = "";
if ( argc != 2 )
{
cerr << "Usage: " << argv[0];
cerr << " <URI>" << endl;
return 1;
}
else
{
uri_string = argv[1];
}
// Create URI object and have it parse the uri_string
URI *uri = URI::Parse(uri_string);
if ( uri == NULL )
{
cerr << "Error: Cannot parse URI." << endl; …Run Code Online (Sandbox Code Playgroud) 我正在加载UIWebview并请求可能需要一些时间才能完成加载的URL.请求开始并开始接收数据.但是,请求似乎没有完成.webViewDidFinishLoad永远不会触发webView didFailLoadWithError:callback.
NSURLRequest的超时是否仅在没有响应接收数据时发生,或者如果请求在该时间间隔内没有完成则触发吗?
如果它是前者,是否有一个优雅的解决方案来超时请求?
相关代码是:
加载请求:
- (void) loadRequest {
NSString *targetURL = @"http://myrequestUrl/";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: targetURL] cachePolicy: NSURLRequestReloadIgnoringLocalCacheData timeoutInterval: 15.0] autorelease];
[request setHTTPBasicID: [[self credentialManager] userID] password:[[self credentialManager] password]];
[webView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible: NO];
[alert hide];
[alert autorelease];
alert = nil;
NSLog(@"error - %@", error);
[self showRetryPrompt: error];
}
- (void) loadRequest {
NSString *targetURL = @"http://myrequestUrl/";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] …
我需要为长时间运行的线程添加超时.我们遇到了一些外部问题,这些问题有时会导致该线程无限期地挂在某一行代码上.为了使我们的进程更健壮,我们希望检测到线程不再主动运行/轮询并中止线程.这将让我们清理资源并重新启动线程.
添加此功能的首选方法是什么?
考虑一个存储过程,该过程在60秒内更新某些行而不使用事务.我们将ADO.NET的SqlCommand.Timeout设置为30秒.
SqlCommand.Timeout = 30;
Run Code Online (Sandbox Code Playgroud)
当超时发生在30秒时,存储过程是否会继续在数据库服务器中运行?服务器如何将此信息传达给客户端?
我有一个长期运行的CGI和超时错误的问题:
超时等待CGI脚本的输出
客户端是jQuery编程的表单.用户输入一些数据并接收分析已启动的消息.除了在分析数据时带有链接的电子邮件之外,用户不希望看到更多消息.那么,此时,与客户端的连接已关闭,对吧?
在服务器端,Perl CGI脚本获取数据并执行一些C程序(使用Perl的系统)来分析它们.此过程可能需要几秒钟到几小时,具体取决于输入的数据.
然后,相同的CGI程序解析结果并向用户发送一封电子邮件,其中包含指向结果网页的链接.
因为对于某些数据,CGI可以运行几个小时我收到错误消息.
我假设增加ScriptTimeout是一个坏主意.我甚至不确定mod_cgi是否已安装.
我该怎么做才能避免这个错误?
服务器:在Mac OS X中运行的Apache2.
timeout ×10
c# ×3
.net ×2
ado.net ×1
apache2 ×1
c++ ×1
cgi ×1
client-side ×1
javascript ×1
nsurlrequest ×1
perl ×1
ping ×1
policywrap ×1
polly ×1
react-query ×1
reactjs ×1
retry-logic ×1
sandbox ×1
sockets ×1
sql-server ×1
tableadapter ×1
uiwebview ×1