mirror of https://github.com/dapr/docs.git
Merge branch 'v1.13' into issue_3039
This commit is contained in:
commit
06ff779c90
|
|
@ -12,7 +12,7 @@ Dapr bot is triggered by a list of commands that helps with common tasks in the
|
|||
|
||||
| Command | Target | Description | Who can use | Repository |
|
||||
| ---------------- | --------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------- |
|
||||
| `/assign` | Issue | Assigns an issue to a user or group of users | Anyone | `dapr`, `docs`, `quickstarts`, `cli`, `components-contrib`, `go-sdk`, `js-sdk`, `java-sdk`, `python-sdk`, `dotnet-sdk` |
|
||||
| `/assign` | Issue | Assigns an issue to a user or group of users | Anyone | `dapr`, `docs`, `quickstarts`, `cli`, `components-contrib`, `go-sdk`, `js-sdk`, `java-sdk`, `python-sdk`, `dotnet-sdk`, `rust-sdk` |
|
||||
| `/ok-to-test` | Pull request | `dapr`: trigger end to end tests <br/> `components-contrib`: trigger conformance and certification tests | Users listed in the [bot](https://github.com/dapr/dapr/blob/master/.github/scripts/dapr_bot.js) | `dapr`, `components-contrib` |
|
||||
| `/ok-to-perf` | Pull request | Trigger performance tests. | Users listed in the [bot](https://github.com/dapr/dapr/blob/master/.github/scripts/dapr_bot.js) | `dapr` |
|
||||
| `/make-me-laugh` | Issue or pull request | Posts a random joke | Users listed in the [bot](https://github.com/dapr/dapr/blob/master/.github/scripts/dapr_bot.js) | `dapr`, `components-contrib` |
|
||||
|
|
|
|||
|
|
@ -586,7 +586,45 @@ The key takeaways from this example are:
|
|||
- The number of parallel tasks can be static or dynamic
|
||||
- The workflow itself is capable of aggregating the results of parallel executions
|
||||
|
||||
While not shown in the example, it's possible to go further and limit the degree of concurrency using simple, language-specific constructs. Furthermore, the execution of the workflow is durable. If a workflow starts 100 parallel task executions and only 40 complete before the process crashes, the workflow restarts itself automatically and only schedules the remaining 60 tasks.
|
||||
Furthermore, the execution of the workflow is durable. If a workflow starts 100 parallel task executions and only 40 complete before the process crashes, the workflow restarts itself automatically and only schedules the remaining 60 tasks.
|
||||
|
||||
It's possible to go further and limit the degree of concurrency using simple, language-specific constructs. The sample code below illustrates how to restrict the degree of fan-out to just 5 concurrent activity executions:
|
||||
|
||||
{{< tabs ".NET" >}}
|
||||
|
||||
{{% codetab %}}
|
||||
<!-- .NET -->
|
||||
```csharp
|
||||
|
||||
//Revisiting the earlier example...
|
||||
// Get a list of N work items to process in parallel.
|
||||
object[] workBatch = await context.CallActivityAsync<object[]>("GetWorkBatch", null);
|
||||
|
||||
const int MaxParallelism = 5;
|
||||
var results = new List<int>();
|
||||
var inFlightTasks = new HashSet<Task<int>>();
|
||||
foreach(var workItem in workBatch)
|
||||
{
|
||||
if (inFlightTasks.Count >= MaxParallelism)
|
||||
{
|
||||
var finishedTask = await Task.WhenAny(inFlightTasks);
|
||||
results.Add(finishedTask.Result);
|
||||
inFlightTasks.Remove(finishedTask);
|
||||
}
|
||||
|
||||
inFlightTasks.Add(context.CallActivityAsync<int>("ProcessWorkItem", workItem));
|
||||
}
|
||||
results.AddRange(await Task.WhenAll(inFlightTasks));
|
||||
|
||||
var sum = results.Sum(t => t);
|
||||
await context.CallActivityAsync("PostResults", sum);
|
||||
```
|
||||
|
||||
{{% /codetab %}}
|
||||
|
||||
{{< /tabs >}}
|
||||
|
||||
Limiting the degree of concurrency in this way can be useful for limiting contention against shared resources. For example, if the activities need to call into external resources that have their own concurrency limits, like a databases or external APIs, it can be useful to ensure that no more than a specified number of activities call that resource concurrently.
|
||||
|
||||
## Async HTTP APIs
|
||||
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ If you wish to use MongoDB as an actor store, add this metadata option to your C
|
|||
You can run a single MongoDB instance locally using Docker:
|
||||
|
||||
```sh
|
||||
docker run --name some-mongo -d mongo
|
||||
docker run --name some-mongo -d -p 27017:27017 mongo
|
||||
```
|
||||
|
||||
You can then interact with the server at `localhost:27017`. If you do not specify a `databaseName` value in your component definition, make sure to create a database named `daprStore`.
|
||||
|
|
|
|||
Loading…
Reference in New Issue