Size: a a a

Saint P Ruby Community

2019 October 07

MK

Mikhail Kuzmin in Saint P Ruby Community
и такая задача попадает в очередь fifo
источник

AD

Anton Davydov in Saint P Ruby Community
Mikhail Kuzmin
а ты что хочешь? чтобы оно магически со всем работало?
я выше описал, что стандартизация это сложно
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
все обыденно и понятно
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
потом у нас есть несколько воркеров/тредов, которые из этой очереди выбирают элемент
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
и делают они это за O(1)
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
можно запомнить обрабатываемую задачу
и при падении положить обратно в очередь
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
sidekiq это не делает, только в sidekiq pro
источник

AD

Anton Davydov in Saint P Ruby Community
а ты уверен, что хочешь в ту же очередь класть упавшую задачу?
источник

AD

Anton Davydov in Saint P Ruby Community
ты уверен, что делается это за О(1)?
источник

AD

Anton Davydov in Saint P Ruby Community
где эта очередь находиться?
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
Anton Davydov
а ты уверен, что хочешь в ту же очередь класть упавшую задачу?
давай я расскажу и потом на вопросы отвечу?
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
Так вот.
задачи извлекаются из очереди и параллельно обрабатываются
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
и задача которую взяли последней может обработаться раньше той, что взяли раньше
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
например, задачи - это документы которые нужно проиндексировать
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
и случается ситуация, когда старые данные затипрают новые
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
другой случай. прилетает документ
его нужно положить в бд в несколько таблиц
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
и документ уже есть бд, т.е. это задача обновления
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
начинают происходить дедлоки
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
проблема понятна?
источник

MK

Mikhail Kuzmin in Saint P Ruby Community
Anton Davydov
а ты уверен, что хочешь в ту же очередь класть упавшую задачу?
Это зависит. Например, от реализации очереди.
Если она умеет выполнять задачу после определенного срока - да.
источник