определенную работу с определенной периодичностью. Периоды эти могут изменяться в зависимости от поступающих данных, поэтому тупые кронджобы не подойдут.
Как правильно сделать этот софт масштабируемым? Когда запущено много копий сервиса.
Для начала, можно выделить часть с расписанием, и пусть задачи в очередь засовывает, а все остальные их разбирают. Но как правильнее сделать так, чтобы в очередь только одна из них пихала задачи, когда поднято несколько копий? Сделать какой-нибудь лок через etcd?
отложенные сообщения в реббите
думал о таком. Как дважды с разных планировщиков не послать сообщения в очередь?
Все размыто, но в целом если ты используешь локи для такого, то скорее всего, ты делаешь что-то не то
А почему не то? Именно лок на ту область, которая добавит новое сообщение в топик (не очередь, но из топика оно добавится в очередь само автоматизацией). А второй воркер планировщика проверит, что сообщение было сделано, и не добавит его снова.
Потому что ты хочешь масштабировать, но все инстансы один фиг засовываешь в мьютекс)
Ну вот один инстанс сделает одно событие, второй - другое...
Обсуждают сегодня