Нерестовые процессы в фоновом режиме - PullRequest
1 голос
/ 19 февраля 2020

У меня есть очередь сообщений RabbitMQ, в которую я добавляю configuration.json в очередь. Каждая из этих конфигураций имеет всю информацию, необходимую для запуска рабочего процесса. Поэтому, если в очереди есть 5 сообщений, мне нужно передать команды конфигурации 5 через моего потребителя, который запускает рабочий процесс.

Если я выйду из python скрипт, который порождает эти процессы, я также выхожу из процесса рабочего процесса. И это проблема.

В настоящее время:

subprocess.run(f'nextflow run nextflow/workflow_runner.nf -w "gs://nextflow-text-bucket/work" -c nextflow/nextflow.config --at_config {config_file} --csv {csv_dest} &', shell=True)

Здесь я просто добавляю символ & в конец команды, чтобы она выполнялась в фоновом режиме. Как я могу изменить этот код так, чтобы мой python сценарий создал новый процесс, который отключен от этого потребителя.

ОСНОВНО, Как эффективно создать n число процессов, использующих сценарий python, которые не зависят от сценария, который их запустил. И у меня есть возможность войти в систему и подключиться к выводу каждого процесса.

Вот как выглядит вывод:

N E X T F L O W  ~  version 20.01.0
Launching `nextflow/workflow_runner.nf` [pedantic_pauling] - revision: a8fe3d5045
executor >  google-lifesciences (1)
[92/828e5d] process > prc1             [  0%] 0 of 1
[-        ] process > prc2              -
[-        ] process > prc3              -
[-        ] process > prc4              -
[-        ] process > prc5              -

И обновляется по завершении каждого процесса. Таким образом, имея возможность начать это в bg, но иметь возможность "прикрепить" к нему и проверить, где он достигнут.

...