Browse Source

docs: add distributed locking documentation and update navigation links

pull/21781/head
ahmetfarukulu 1 year ago
parent
commit
48697f49cb
  1. 4
      docs/en/solution-templates/layered-web-application/background-workers.md
  2. 44
      docs/en/solution-templates/layered-web-application/distributed-locking.md
  3. 1
      docs/en/solution-templates/layered-web-application/index.md
  4. 4
      docs/en/solution-templates/layered-web-application/multi-tenancy.md
  5. 2
      docs/en/solution-templates/single-layer-web-application/distributed-locking.md

4
docs/en/solution-templates/layered-web-application/background-workers.md

@ -8,8 +8,8 @@
"Path": "solution-templates/layered-web-application/background-jobs"
},
"Next": {
"Name": "Multi-Tenancy",
"Path": "solution-templates/layered-web-application/multi-tenancy"
"Name": "Distribution Locking",
"Path": "solution-templates/layered-web-application/distributed-locking"
}
}
```

44
docs/en/solution-templates/layered-web-application/distributed-locking.md

@ -0,0 +1,44 @@
# Layered Solution: Distributed Locking
```json
//[doc-nav]
{
"Previous": {
"Name": "Background Workers",
"Path": "solution-templates/layered-web-application/background-workers"
},
"Next": {
"Name": "Multi-Tenancy",
"Path": "solution-templates/layered-web-application/multi-tenancy"
}
}
```
Distributed locking is a mechanism that enables multiple instances of an application to coordinate and synchronize access to shared resources. It is particularly useful in scenarios where multiple instances need to ensure that only one instance can access a resource at a time. For more information, refer to the [Distributed Locking](../../framework/infrastructure/distributed-locking.md) document.
## Distributed Locking in Layered Solutions
The layered solution template does not include the distributed lock package by default unless it's a *Tiered* or *Public Website* application. To use distributed locking, you can add the [Volo.Abp.DistributedLock](https://www.nuget.org/packages/Volo.Abp.DistributedLocking) package to your project. This package provides a distributed lock mechanism that works with Redis. You can inject the `IAbpDistributedLock` service to acquire and release locks. Below is an example of using distributed locking in your application:
```csharp
public class MyService : ITransientDependency
{
private readonly IAbpDistributedLock _distributedLock;
public MyService(IAbpDistributedLock distributedLock)
{
_distributedLock = distributedLock;
}
public async Task MyMethodAsync()
{
await using (var handle = await _distributedLock.TryAcquireAsync("MyLockName"))
{
if (handle != null)
{
// your code that access the shared resource
}
}
}
}
```

1
docs/en/solution-templates/layered-web-application/index.md

@ -31,6 +31,7 @@ ABP Studio provides pre-architected, production-ready templates to jump-start a
* [Swagger integration](swagger-integration.md)
* [Bacground Jobs](background-jobs.md)
* [Background Workers](background-workers.md)
* [Distributed Locking](distributed-locking.md)
* [Multi-Tenancy](multi-tenancy.md)
* [BLOB storing](blob-storing.md)
* [CORS configuration](cors-configuration.md)

4
docs/en/solution-templates/layered-web-application/multi-tenancy.md

@ -4,8 +4,8 @@
//[doc-nav]
{
"Previous": {
"Name": "Background Workers",
"Path": "solution-templates/layered-web-application/background-workers"
"Name": "Distribution Locking",
"Path": "solution-templates/layered-web-application/distributed-locking"
},
"Next": {
"Name": "BLOB storing",

2
docs/en/solution-templates/single-layer-web-application/distributed-locking.md

@ -18,7 +18,7 @@ Distributed locking is a mechanism that allows multiple instances of an applicat
## Distributed Locking in Single Layer Solutions
The single-layer solution templates does not include distributed lock package by default. You can add the [Volo.Abp.DistributedLock](https://www.nuget.org/packages/Volo.Abp.DistributedLocking) package to your project to use distributed locking. This package provides a distributed lock mechanism that works with Redis. You can inject the `IAbpDistributedLock` service to acquire and release. Here is an example of using distributed locking in your application:
The single-layer solution template does not include distributed lock package by default. You can add the [Volo.Abp.DistributedLock](https://www.nuget.org/packages/Volo.Abp.DistributedLocking) package to your project to use distributed locking. This package provides a distributed lock mechanism that works with Redis. You can inject the `IAbpDistributedLock` service to acquire and release. Here is an example of using distributed locking in your application:
```csharp
public class MyService : ITransientDependency

Loading…
Cancel
Save