Каков лучший метод создания “окруженных стеной садов” для нескольких клиентов в Вашей базе данных?

Вы можете добавить микросхемы в очередь с помощью Amazon SQS, и работники или Lambdas будут вытаскивать эти отдельные задания из очереди. Затем вы можете настроить оповещение cloudwatch, которое контролирует глубину вашей очереди, где нулевая глубина очереди (задание выполнено) запускает лямбду «завершения», которая объединит отдельные выходные микросхемы.

Я полагаю, что CloudWatch предупреждает о состояниях очереди опроса с 5-минутными интервалами, поэтому для вашего случая использования, когда у вас длительное время обработки (~ 10-15 минут), здесь не будет узким местом (лямбда-тайм-ауты В любом случае, 15 минут, так что если вы установите опрос на 15 минут, ваша лямбда либо потерпит неудачу, либо будет завершена к тому времени).

Шаг за шагом, как это будет выглядеть:

  1. Загрузка нового файла на S3
  2. Загрузка запускает лямбду, чтобы разбить файл на «фишки» "в новой папке
  3. Добавить все микросхемы в новую очередь
  4. Лямбды извлекают микросхемы из очереди
  5. , когда очередь пуста, запускать конгломерацию лямбда

[ 1111] Вот еще один полезный ответ по настройке триггеров на основе состояния очереди: Эффективный способ проверить, пуста ли очередь SQS

10
задан 6 April 2009 в 18:44
поделиться

2 ответа

При использовании направляющих 2.3 + у Вас есть роскошь объемов по умолчанию:

class Model < ActiveRecord::Base
  default_scope :conditions => ['client_id = ?', client_id]
end

Необходимо было бы удостовериться, что client_id установлен где-нибудь в процессе init.

Это гарантировало бы, чтобы все запросы дб в той модели использовали client_id условие.

10
ответ дан 4 December 2019 в 01:32
поделиться

Как насчет добавления новой базы данных для каждого клиента? Так разделение клиентов будет более конкретным, и ошибки, когда клиенты могут использовать данные других клиентов, будут менее вероятны.

0
ответ дан 4 December 2019 в 01:32
поделиться
Другие вопросы по тегам:

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