В очереди есть несколько действующих лиц, как ее обрабатывать? - PullRequest
0 голосов
/ 19 сентября 2018

Я прошу прощения за супер базовый вопрос, я все еще пытаюсь научиться работать с очередями сообщений.

Случай:

У каждого пользователя есть «рабочий», который может толькообрабатывать одну задачу за один раз для этого пользователя.Если очередь выглядит следующим образом:

[
    { taskForUser: 4, data { ...payload } },
    { taskForUser: 3, data { ...payload } },
    { taskForUser: 4, data { ...payload } },
    { taskForUser: 1, data { ...payload } },
    { taskForUser: 2, data { ...payload } },
    { taskForUser: 2, data { ...payload } },
    { taskForUser: 1, data { ...payload } },
    { taskForUser: 1, data { ...payload } } 
]

Я хотел бы убедиться, что на каждого работника пользователя никто не сидит без дела, и как только работа для этого пользователя будет завершена, я бы хотелэтот пользователь должен взять следующую работу для себя.

По сути, это похоже на несколько очередей - очередь для каждого пользователя.

Для простоты похоже на динамическое создание очереди для каждого нового знака пользователя.Up кажется приличным решением.Однако это может привести к таким проблемам, как опрос SQS слишком много.

Возможно, я в корне неправильно понимаю, как работает SQS, но как мне лучше решить эту проблему?

...