Каков правильный подход к взаимодействию с базой данных в серии различных процессов? - PullRequest
0 голосов
/ 04 августа 2020

У меня и моей команды есть проект, в котором мы должны создать программный инструмент биоинформатики, который состоит из нескольких процессов и взаимодействует с различными API и другими инструментами биоинформатики. Хотя наши параметры запроса принимаются с помощью React, серверная часть запускается с Python, и мы также используем Postgres в качестве нашей базы данных.

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

Наши мысли:

  1. Непрерывно запускать программу (например, bash script) и передавать идентификатор задания в качестве параметра для каждого сценария. Таким образом, взаимодействие с базой данных будет очень простым и будет состоять из пары базовых c SQL запросов;
  2. Запуск программы в нескольких коротких скриптах, которые автоматически запускаются, когда часть расчет выполнен, и в нашу базу данных вставляется строка, вызывающая триггер и запускающий какой-то конкретный наш скрипт. Кроме того, в этом сценарии лучше открывать и закрывать соединение с базой данных после запуска некоторых фрагментов программы или держать его открытым до завершения всего процесса?
  3. Есть ли лучший способ достичь нашей цели? чем эти два способа?
...