212 похожих чатов

Привет. Может кто сталкивался или есть какие умные мысли/подходы. Ситуация

следующая. Есть сервис который распределяет джобы между агентами. Джобы эти в пайплайне. Сам стейт этих джоб живет в памяти на протяжении жизни приложения. Нужно так, чтобы этот стейт умел переживать падение хоста (например обновили сервис), чтобы он встал, подхватил старый стейт, начал дальше распихивать джобы в агентов с того места где остановились. Проблема как раз в том, что по сути нам всегда нужно иметь два одинаковых стейта в базе и в памяти, потому что условное падение хоста может произойти в любой точке обработки, например поменяли стейт, в базу не успели сохранить. Может у кого есть идеи как это сделать?)

7 ответов

12 просмотров

Кстати, почему не рассматриваешь держать и менять стейт джоб в каком-нибудь редисе, а не в памяти приложения? (это не рекомендация, просто интересно)

На мой взгляд похоже на стандартную проблему распределенной транзакции. Можно попробовать замутить что то в стиле 2 phase commit

А сейчас что происходит после изменения стейта? Он в бд не пишется что-ли?

tepmporal io рассматривали под такого рода задачу?

Держать стейт в бд а не в сервисе

Ivan Rasikhin
Держать стейт в бд а не в сервисе

Он об этом и спрашивает. Ток у него есть описание стэйта координатора и внешние процессы. Так как на каждый яих надо две штуки потрогать то есть нюансы как когда писать в бд и т д.

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
5
Карта сайта