Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Bryan Hogan
committed
Oct 1, 2019
0 parents
commit 7ec8c27
Showing
15 changed files
with
880 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,293 @@ | ||
## Ignore Visual Studio temporary files, build results, and | ||
## files generated by popular Visual Studio add-ons. | ||
## | ||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore | ||
|
||
# User-specific files | ||
*.suo | ||
*.user | ||
*.userosscache | ||
*.sln.docstates | ||
*.zip | ||
*.pptx | ||
*.ppt | ||
# User-specific files (MonoDevelop/Xamarin Studio) | ||
*.userprefs | ||
.vscode/ | ||
.git/ | ||
# Build results | ||
[Dd]ebug/ | ||
[Dd]ebugPublic/ | ||
[Rr]elease/ | ||
[Rr]eleases/ | ||
x64/ | ||
x86/ | ||
bld/ | ||
[Bb]in/ | ||
[Oo]bj/ | ||
[Ll]og/ | ||
|
||
# Visual Studio 2015 cache/options directory | ||
.vs/ | ||
# Uncomment if you have tasks that create the project's static files in wwwroot | ||
#wwwroot/ | ||
|
||
# MSTest test Results | ||
[Tt]est[Rr]esult*/ | ||
[Bb]uild[Ll]og.* | ||
|
||
# NUNIT | ||
*.VisualState.xml | ||
TestResult.xml | ||
|
||
# Build Results of an ATL Project | ||
[Dd]ebugPS/ | ||
[Rr]eleasePS/ | ||
dlldata.c | ||
|
||
# .NET Core | ||
project.lock.json | ||
project.fragment.lock.json | ||
artifacts/ | ||
**/Properties/launchSettings.json | ||
|
||
*_i.c | ||
*_p.c | ||
*_i.h | ||
*.ilk | ||
*.meta | ||
*.obj | ||
*.pch | ||
*.pdb | ||
*.pgc | ||
*.pgd | ||
*.rsp | ||
*.sbr | ||
*.tlb | ||
*.tli | ||
*.tlh | ||
*.tmp | ||
*.tmp_proj | ||
*.log | ||
*.vspscc | ||
*.vssscc | ||
.builds | ||
*.pidb | ||
*.svclog | ||
*.scc | ||
|
||
# Chutzpah Test files | ||
_Chutzpah* | ||
|
||
# Visual C++ cache files | ||
ipch/ | ||
*.aps | ||
*.ncb | ||
*.opendb | ||
*.opensdf | ||
*.sdf | ||
*.cachefile | ||
*.VC.db | ||
*.VC.VC.opendb | ||
|
||
# Visual Studio profiler | ||
*.psess | ||
*.vsp | ||
*.vspx | ||
*.sap | ||
|
||
# TFS 2012 Local Workspace | ||
$tf/ | ||
|
||
# Guidance Automation Toolkit | ||
*.gpState | ||
|
||
# ReSharper is a .NET coding add-in | ||
_ReSharper*/ | ||
*.[Rr]e[Ss]harper | ||
*.DotSettings.user | ||
|
||
# JustCode is a .NET coding add-in | ||
.JustCode | ||
|
||
# TeamCity is a build add-in | ||
_TeamCity* | ||
|
||
# DotCover is a Code Coverage Tool | ||
*.dotCover | ||
|
||
# Visual Studio code coverage results | ||
*.coverage | ||
*.coveragexml | ||
|
||
# NCrunch | ||
_NCrunch_* | ||
.*crunch*.local.xml | ||
nCrunchTemp_* | ||
|
||
# MightyMoose | ||
*.mm.* | ||
AutoTest.Net/ | ||
|
||
# Web workbench (sass) | ||
.sass-cache/ | ||
|
||
# Installshield output folder | ||
[Ee]xpress/ | ||
|
||
# DocProject is a documentation generator add-in | ||
DocProject/buildhelp/ | ||
DocProject/Help/*.HxT | ||
DocProject/Help/*.HxC | ||
DocProject/Help/*.hhc | ||
DocProject/Help/*.hhk | ||
DocProject/Help/*.hhp | ||
DocProject/Help/Html2 | ||
DocProject/Help/html | ||
|
||
# Click-Once directory | ||
publish/ | ||
|
||
# Publish Web Output | ||
*.[Pp]ublish.xml | ||
*.azurePubxml | ||
# TODO: Comment the next line if you want to checkin your web deploy settings | ||
# but database connection strings (with potential passwords) will be unencrypted | ||
*.pubxml | ||
*.publishproj | ||
|
||
# Microsoft Azure Web App publish settings. Comment the next line if you want to | ||
# checkin your Azure Web App publish settings, but sensitive information contained | ||
# in these scripts will be unencrypted | ||
PublishScripts/ | ||
|
||
# NuGet Packages | ||
*.nupkg | ||
# The packages folder can be ignored because of Package Restore | ||
**/packages/* | ||
# except build/, which is used as an MSBuild target. | ||
!**/packages/build/ | ||
# Uncomment if necessary however generally it will be regenerated when needed | ||
#!**/packages/repositories.config | ||
# NuGet v3's project.json files produces more ignorable files | ||
*.nuget.props | ||
*.nuget.targets | ||
|
||
# Microsoft Azure Build Output | ||
csx/ | ||
*.build.csdef | ||
|
||
# Microsoft Azure Emulator | ||
ecf/ | ||
rcf/ | ||
|
||
# Windows Store app package directories and files | ||
AppPackages/ | ||
BundleArtifacts/ | ||
Package.StoreAssociation.xml | ||
_pkginfo.txt | ||
*.appx | ||
|
||
# Visual Studio cache files | ||
# files ending in .cache can be ignored | ||
*.[Cc]ache | ||
# but keep track of directories ending in .cache | ||
!*.[Cc]ache/ | ||
|
||
# Others | ||
ClientBin/ | ||
~$* | ||
*~ | ||
*.dbmdl | ||
*.dbproj.schemaview | ||
*.jfm | ||
*.pfx | ||
*.publishsettings | ||
orleans.codegen.cs | ||
|
||
# Since there are multiple workflows, uncomment next line to ignore bower_components | ||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) | ||
#bower_components/ | ||
|
||
# RIA/Silverlight projects | ||
Generated_Code/ | ||
|
||
# Backup & report files from converting an old project file | ||
# to a newer Visual Studio version. Backup files are not needed, | ||
# because we have git ;-) | ||
_UpgradeReport_Files/ | ||
Backup*/ | ||
UpgradeLog*.XML | ||
UpgradeLog*.htm | ||
|
||
# SQL Server files | ||
*.mdf | ||
*.ldf | ||
*.ndf | ||
|
||
# Business Intelligence projects | ||
*.rdl.data | ||
*.bim.layout | ||
*.bim_*.settings | ||
|
||
# Microsoft Fakes | ||
FakesAssemblies/ | ||
|
||
# GhostDoc plugin setting file | ||
*.GhostDoc.xml | ||
|
||
# Node.js Tools for Visual Studio | ||
.ntvs_analysis.dat | ||
node_modules/ | ||
|
||
# Typescript v1 declaration files | ||
typings/ | ||
|
||
# Visual Studio 6 build log | ||
*.plg | ||
|
||
# Visual Studio 6 workspace options file | ||
*.opt | ||
|
||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) | ||
*.vbw | ||
|
||
# Visual Studio LightSwitch build output | ||
**/*.HTMLClient/GeneratedArtifacts | ||
**/*.DesktopClient/GeneratedArtifacts | ||
**/*.DesktopClient/ModelManifest.xml | ||
**/*.Server/GeneratedArtifacts | ||
**/*.Server/ModelManifest.xml | ||
_Pvt_Extensions | ||
|
||
# Paket dependency manager | ||
.paket/paket.exe | ||
paket-files/ | ||
|
||
# FAKE - F# Make | ||
.fake/ | ||
|
||
# JetBrains Rider | ||
.idea/ | ||
*.sln.iml | ||
|
||
# CodeRush | ||
.cr/ | ||
|
||
# Python Tools for Visual Studio (PTVS) | ||
__pycache__/ | ||
*.pyc | ||
|
||
# Cake - Uncomment if you are using it | ||
# tools/** | ||
# !tools/packages.config | ||
|
||
# Telerik's JustMock configuration file | ||
*.jmconfig | ||
|
||
# BizTalk build output | ||
*.btp.cs | ||
*.btm.cs | ||
*.odx.cs | ||
*.xsd.cs | ||
*.binlog |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Try .NET Enabled Samples | ||
![dotnet try Enabled](https://img.shields.io/badge/Try_.NET-Enabled-501078.svg) | ||
|
||
*Please read the [Try .NET quick setup guide](Setup.md) before starting the tutorial below.* | ||
|
||
<p align ="center"> | ||
<img src ="http://www.thepollyproject.org/content/images/2016/10/Polly-Logo@2x.png" width="250"> | ||
</p> | ||
<h1 align ="center">Try .NET Samples of Polly, the .NET Resilience Framework</h1> | ||
|
||
<h3 align ="center">Polly is a resilience framework for .NET, with it your applications can easily tolerate transient faults and longer outages in remote systems or infrastructure. With just a few lines of code your application will be far more robust and reliable.</h3> | ||
|
||
### Table of Content | ||
- [Before you add Polly](lettingItFail.md) | ||
- [Retrying when you get an exception](retryIfException.md) | ||
- [Retrying when you get a bad result](retryIfIncorrectStatus.md) | ||
- [Combining Result and Exception Based Retries](retryIfIncorrectStatusOrException.md) | ||
- [Waiting Before Retrying](waitAndRetry.md) | ||
- [Fallbacks 1](fallingBack.md) | ||
- [Fallbacks 2](fallingBackAndReturningADefault.md) | ||
- [Basic Circuit Breaker](basicCircuitBreaker.md) | ||
- [Advanced Circuit Breaker](advancedCircuitBreaker.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Circuit Breaker 2 | ||
|
||
### Advanced circuit breaker | ||
The advanced circuit breaker breaks the circuit if a if a threshold of failures is reached within a specified time period and with a minimum number of requests reached in that time period. | ||
|
||
In this example the circuit breaks when there are 50% failures, in a 3 second sampling window, with a minimum throughput of 6 request in the 3 second window; if the circuit breaks it will be open for 5 seconds. When the circuit breaker is open no traffic will cross it, instead a `BrokenCircuitException` will be thrown. | ||
|
||
``` cs --region advancedCircuitBreaker --source-file .\src\Program.cs --project .\src\PollyDemo.csproj | ||
``` | ||
|
||
#### Next: [Caching »](../caching.md) Previous: [Basic Circuit Breaker «](../basicCircuitBreaker.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Circuit Breaker 1 | ||
|
||
### Basic circuit breaker | ||
The basic circuit breaker breaks the circuit if a set number of consecutive of errors occur. When the circuit breaker is open no traffic will cross it, instead a `BrokenCircuitException` will be thrown. | ||
|
||
``` cs --region basicCircuitBreaker --source-file .\src\Program.cs --project .\src\PollyDemo.csproj | ||
``` | ||
|
||
#### Next: [Advanced Circuit Breaker »](../advancedCircuitBreaker.md) Previous: [Fallbacks 2 «](../fallingBackAndReturningADefault.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Polly Fallbacks 1 | ||
|
||
### When all else fails...do something. | ||
There are times when no number of retires will solve a problem, the underlying service just won't respond. In this case the Fallback policy is you last resort. It can page an admin, scale a service or return a default. | ||
|
||
This example "pages" an admin but you can do anything you want. | ||
|
||
``` cs --region fallingBack --source-file .\src\Program.cs --project .\src\PollyDemo.csproj | ||
``` | ||
|
||
#### Next: [Fallbacks 2 »](../fallingBackAndReturningADefault.md) Previous: [Waiting Before Retrying «](../waitAndRetry.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Polly Fallbacks 2 | ||
|
||
### When all else fails...return a default | ||
Sometimes it makes sense to return a default or safe value from a fallback. In this example a quantity of zero is returned if the request fails. | ||
|
||
``` cs --region fallingBackAndReturningADefault --source-file .\src\Program.cs --project .\src\PollyDemo.csproj | ||
``` | ||
|
||
#### Next: [Basic Circuit Breaker »](../basicCircuitBreaker.md) Previous: [Fallbacks 1 «](../fallingBack.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Polly Retries Part 1 | ||
|
||
### Letting a request fail - not using Polly yet | ||
Before adding Polly let's see how an application without Polly might behave. | ||
Here we are trying to write to a database, but the request will fail and an exception will be thrown. | ||
|
||
``` cs --region lettingItFail --source-file .\src\Program.cs --project .\src\PollyDemo.csproj | ||
``` | ||
|
||
#### Next: [Retrying When an Exception Occurs »](../retryIfException.md) Previous: [Home «](../README.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Polly Retries Part 2 | ||
|
||
### Retrying When an Exception Occurs | ||
The Polly NuGet package has been added and we are going to use the Retry Policy when querying database. | ||
The policy states that if an exception occurs, it will retry up to three times. | ||
|
||
Note how you execute the unreliable code inside the policy. `retryPolicy.Execute(() => errorProneCode.QueryTheDatabase());` | ||
|
||
|
||
``` cs --region retryIfException --source-file .\src\Program.cs --project .\src\PollyDemo.csproj | ||
``` | ||
|
||
#### Next: [Retrying Based on a Result »](./retryIfIncorrectStatus.md) Previous: [Home «](../README.md) |
Oops, something went wrong.