Пример задачи с отдельным классом метаданных
Класс реализующий IPRBackgroundTask + класс IPRBackgroundTaskMetadata
using AspNetExample.Models;
using PRTelegramBot.BackgroundTasks.Interfaces;
using PRTelegramBot.Core;
namespace AspNetExample.BackgroundTasks
{
public class ExampleBackgroundTasksMetadata : IPRBackgroundTaskMetadata
{
public HashSet<long> BotIds { get; } = new HashSet<long>();
public Guid Id => Constants.EXAMPLE_TASK_WITHOUT_METADATA;
public string Name => nameof(ExampleBackgroundTasksMetadata);
public int? InitialDelaySeconds => 1;
public int? RepeatSeconds => 1;
public int? MaxErrorAttempts => PRConstants.INFINITY;
public int? MaxRepeatCount => -1;
}
}
using AspNetExample.Models;
using PRTelegramBot.BackgroundTasks.Interfaces;
using PRTelegramBot.Core;
using System.Diagnostics;
namespace AspNetExample.BackgroundTasks
{
public class ExampleWithoutMetadataBackgroundTasks : IPRBackgroundTask
{
public Guid Id => Constants.EXAMPLE_TASK_WITHOUT_METADATA;
public Task ExecuteAsync(CancellationToken cancellationToken)
{
Debug.WriteLine($"Execute {nameof(ExampleWithoutMetadataBackgroundTasks)}");
return Task.CompletedTask;
}
public Task<bool> CanExecute()
{
return Task.FromResult(true);
}
public Task Initialize(PRBotBase bot)
{
return Task.CompletedTask;
}
}
}
Последнее обновление