Iskra.Clients.SequenceGenerator
1.0.1
dotnet add package Iskra.Clients.SequenceGenerator --version 1.0.1
NuGet\Install-Package Iskra.Clients.SequenceGenerator -Version 1.0.1
<PackageReference Include="Iskra.Clients.SequenceGenerator" Version="1.0.1" />
paket add Iskra.Clients.SequenceGenerator --version 1.0.1
#r "nuget: Iskra.Clients.SequenceGenerator, 1.0.1"
// Install Iskra.Clients.SequenceGenerator as a Cake Addin #addin nuget:?package=Iskra.Clients.SequenceGenerator&version=1.0.1 // Install Iskra.Clients.SequenceGenerator as a Cake Tool #tool nuget:?package=Iskra.Clients.SequenceGenerator&version=1.0.1
Iskra.Clients.SequenceGenerator
Описание
Пакет Iskra.Clients.SequenceGenerator
предоставляет клиентскую библиотеку для работы с генератором последовательностей. Он позволяет создавать, обновлять, удалять и получать счетчики последовательностей, а также получать следующие значения этих счетчиков.
Установка
Установите пакет через NuGet:
dotnet add package Iskra.Clients.SequenceGenerator
Использование
1. Конфигурация
Добавьте пакет в ваш проект и настройте его в Startup.cs
или Program.cs
вашего приложения.
В Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
// Добавление генератора последовательностей с фоновым сервисом для проверки существования необходимых счетчиков
services.AddReoSequenceGeneratorWithCounterNameExistsChecking(Configuration);
}
В Program.cs
(для .NET 6 и выше):
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
// Добавление генератора последовательностей с фоновым сервисом для проверки существования необходимых счетчиков
services.AddReoSequenceGeneratorWithCounterNameExistsChecking(context.Configuration);
});
2. Использование клиента
Внедрите ISequenceGeneratorClient
в ваш класс и используйте его методы для работы с счетчиками последовательностей.
public class SequenceService
{
private readonly ISequenceGeneratorClient _sequenceGeneratorClient;
public SequenceService(ISequenceGeneratorClient sequenceGeneratorClient)
{
_sequenceGeneratorClient = sequenceGeneratorClient;
}
public async Task<int> GetNextSequenceValue(string name, CancellationToken token = default)
{
var sequence = await _sequenceGeneratorClient.GetNextAsync(name, token);
return sequence.Value;
}
}
3. Методы клиента
Получение счетчика последовательности
Task<Sequence> GetAsync(string name, CancellationToken token);
Обновление счетчика последовательности
Task<Sequence> UpdateAsync(string name, int value, CancellationToken token);
Создание счетчика последовательности
Task<Sequence> CreateAsync(string name, CancellationToken token);
Удаление счетчика последовательности
Task<bool> DeleteAsync(string name, CancellationToken token);
Получение списка всех счетчиков последовательностей
Task<IReadOnlyCollection<Sequence>> GetAllAsync(CancellationToken token);
Получение следующего значения счетчика последовательности
Task<Sequence> GetNextAsync(string name, CancellationToken token);
Получение нескольких значений счетчика последовательности
Task<BulkSequence> GetNextBulkAsync(string name, int chunkSize, CancellationToken token);
Примеры
Создание и получение следующего значения счетчика
public async Task<int> CreateAndGetNextValue(string sequenceName)
{
// Создаем счетчик последовательности
await _sequenceGeneratorClient.CreateAsync(sequenceName);
// Получаем следующее значение счетчика
var nextSequence = await _sequenceGeneratorClient.GetNextAsync(sequenceName);
return nextSequence.Value;
}
Обновление и получение следующего значения счетчика
public async Task<int> UpdateAndGetNextValue(string sequenceName, int newValue)
{
// Обновляем значение счетчика
await _sequenceGeneratorClient.UpdateAsync(sequenceName, newValue);
// Получаем следующее значение счетчика
var nextSequence = await _sequenceGeneratorClient.GetNextAsync(sequenceName);
return nextSequence.Value;
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- FluentValidation (>= 11.11.0)
- Flurl.Http (>= 4.0.2)
- IdentityModel (>= 7.0.0)
- Iskra.Core.Auth.Abstractions (>= 1.0.74)
- Iskra.Core.Hosting (>= 1.0.74)
- JetBrains.Annotations (>= 2024.3.0)
- Microsoft.Extensions.Configuration (>= 9.0.2)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.2)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.2)
- Microsoft.Extensions.DependencyInjection (>= 9.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.2)
- Microsoft.Extensions.Hosting (>= 9.0.2)
- Microsoft.Extensions.Options (>= 9.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.2)
- Reo.Core.CodeConventions (>= 8.0.180)
- Reo.Core.Extensions (>= 8.0.180)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.1 | 131 | 2/27/2025 |