Как составить алгоритм для параллельной обработки большого массива данных?

Есть таблица в БД со списком заданий. Скрипт обращается к этой таблице, получает порцию задач, а затем, по мере обработки, помечает каждое задание как выполненное.
Необходимо составить алгоритм, при котором станет возможным запускать любое количество копий этого скрипта так, чтобы они обрабатывали очередь задач параллельно. При этом, естественно, нельзя допускать обработку одной задачи несколькими копиями скрипта.
  • Вопрос задан
  • 2352 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
не понятно почему не использовать для этого нормальные решения, типа rabbitmq.

Ну а если подумать, у задания есть статус. pending, processing, done, failed и количество попыток если нужно пробовать перезапускать зафэйленные таски. Основная загвоздка тут - нужно лочить запись что бы данные воркеры получали актуальные.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы