У меня и моей команды есть проект, в котором мы должны создать программный инструмент биоинформатики, который состоит из нескольких процессов и взаимодействует с различными API и другими инструментами биоинформатики. Хотя наши параметры запроса принимаются с помощью React, серверная часть запускается с Python, и мы также используем Postgres в качестве нашей базы данных.
В начале программы каждому запросу дается идентификатор задания , который позже используется для получения результатов расчетов, выполненных нашим программным обеспечением, а также промежуточных результатов и других данных. Поскольку в нашем программном обеспечении используются другие инструменты, которые могут работать от нескольких секунд до нескольких часов, мы сталкиваемся с вопросом, как лучше всего взаимодействовать с базой данных и должна ли программа работать непрерывно или нет.
Наши мысли:
- Непрерывно запускать программу (например, bash script) и передавать идентификатор задания в качестве параметра для каждого сценария. Таким образом, взаимодействие с базой данных будет очень простым и будет состоять из пары базовых c SQL запросов;
- Запуск программы в нескольких коротких скриптах, которые автоматически запускаются, когда часть расчет выполнен, и в нашу базу данных вставляется строка, вызывающая триггер и запускающий какой-то конкретный наш скрипт. Кроме того, в этом сценарии лучше открывать и закрывать соединение с базой данных после запуска некоторых фрагментов программы или держать его открытым до завершения всего процесса?
- Есть ли лучший способ достичь нашей цели? чем эти два способа?