Я отправляю сообщения в Discord из очереди на отправку. При статусе 429, мне нужно положить сообщение в очередь на отправку, и при этом, чем более старым является сообщение, тем раньше оно должно попытаться отправиться снова (тем ближе оно к началу очереди). Подобный механизм позволит гарантировать доставку сообщений.
В таком случае, если у меня 2 потока, 4 канала, до тех пор пока сообщения есть в двух каналах, и их не отрежет 429, сообщения из других двух каналов не будут отправляться, и будут ждать в очереди на выполнение?
Насколько я понял, вы предлагаете аналогичный механизм, который будет иметь иной принцип работы. Мне же интересно, можно ли на корутинах сделать в точности такое поведение, как в примере выше?
Насколько я понял, вы предлагаете аналогичный механизм, который будет иметь иной принцип работы. Мне же интересно, можно ли на корутинах сделать в точности такое поведение, как в примере выше?
Там очень много буков. Если бы вы могли в двух предложениях описать, как оно работает, было бы проще ответить
У вас там две структуры. Одна - это очередь на все сообщеия вроде. Вторая что делает?
Вторая – N параллельно работающих потоков, которые циклично вытягивают из очереди сообщения, для которых на текущий момент доступна отправка (время ожидания после 429 прошло), по одному отправляют, если ловят 429, закидывают обратно в очередь.
Вторая – N параллельно работающих потоков, которые циклично вытягивают из очереди сообщения, для которых на текущий момент доступна отправка (время ожидания после 429 прошло), по одному отправляют, если ловят 429, закидывают обратно в очередь.