# README
axutils
axutils
- это библиотека Go, предоставляющая различные утилиты для работы с каналами, коллекциями, криптографией, параллельным выполнением задач и другими часто используемыми структурами данных. Эта библиотека разработана для упрощения работы с асинхронными операциями, обработкой данных и безопасностью в Go-приложениях.
Установка
Для установки библиотеки используйте команду:
go get github.com/axgrid/axutils
Утилиты для параллельного выполнения задач
Пакет workers
в axutils
предоставляет инструменты для управления параллельным выполнением задач.
Runner
Runner
- это структура, которая позволяет запускать функции параллельно в пуле горутин.
Основные возможности:
- Параллельное выполнение задач в пуле горутин
- Возможность запуска функций без контекста и с контекстом
- Настраиваемое количество рабочих горутин
- Буферизация задач
Пример использования:
runner := workers.NewRunner().
WithWorkerCount(10).
Build()
// Запуск функции без контекста
runner.Run(func() {
fmt.Println("Hello from runner!")
})
// Запуск функции с контекстом
runner.RunWithContext(func(ctx context.Context) {
select {
case <-ctx.Done():
fmt.Println("Context cancelled")
case <-time.After(time.Second):
fmt.Println("Task completed")
}
})
Создание Runner с пользовательскими настройками:
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
defer cancel()
runner := workers.NewRunner().
WithContext(ctx).
WithWorkerCount(20).
Build()
// Использование runner...
Runner
автоматически завершит выполнение всех задач при отмене контекста.
Заключение
Библиотека axutils
предоставляет широкий набор инструментов для эффективной работы с данными, асинхронными операциями, криптографией и параллельным выполнением задач в Go. Использование этих утилит может значительно упростить разработку, повысить производительность и безопасность ваших приложений.
Для получения дополнительной информации о других утилитах библиотеки, пожалуйста, обратитесь к документации кода или примерам использования.