Я играл с rethinkdb в последнее время и пытался реализовать очередь заданий. Я просто задаюсь вопросом, какова лучшая техника для одновременного захвата рабочих мест из таблицы?Одновременно захватывать задания из rethinkdb
Нити не так много, и задания занимают немного времени для запуска, поэтому было бы нормально, например. сделать обновление не выполнено, если данное значение присутствует. Например, если два параллельных процесса захватят задание и попытаются установить workerId, второй конкурирующий процесс завершится с ошибкой и просто повторит попытку.
Так что мне интересно, как это сделать в rethinkdb? Мой текущий подход - это немного взлома, когда второй процесс перезаписывает первый рабочий процесс и перезагружает его, если он замечает, что old_val не был нулевым. Я бы предпочел, чтобы второй процесс просто терпел неудачу ... или какое-то другое решение, которое заставляет rethinkdb обрабатывать это (если возможно, только с rethinkdb, а не с MQ).
Ah r.branch. Отлично. Попробуй это. ти! – noreflow