LINUX.ORG.RU
решено ФорумAdmin

как распараллелить несколько команд?

 ,


0

1

Я часто пишу на скриптовых языках, в основном python + django. А у них нет нормального мультипотока. Это приводит к тому, что задачи по таймеру приходится выносить в отдельный контейнер.

Мне нужна тулза, которая пускает несколько команд в разных потоках и умеет писать логи, чтобы пускать несколько скриптов в одном контейнере. Есть такая? Идея лёгкая в реализации на нормальных яп, поэтому не хочу писать велосипед. Сам нашёл только очень странные решения вроде GNU parallel.

★★★★★

multiprocessing

anonymous
()

Раньше Celery в таких случаях советовали. Он даже во всяких тьюториалах по Django упоминается.

i-rinat ★★★★★
()

Непонятно, что хочешь. Для запуска нескольких разных процессов в докер используется супервизор.

stave ★★★★★
()

python
нет нормального мультипотока

Смело.

BOOBLIK ★★★★
()
Ответ на: комментарий от i-rinat

Избыточный кусок говна аж из 3 контейнеров. Я пускаю schedule в 1 контейнере, но это всё равно не эффективно. Писать для каждого проекта свои велосипеды не хочу. Пробовал bash /shell — оно падает со временем.

InterVi ★★★★★
() автор топика
Ответ на: комментарий от dataman

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

InterVi ★★★★★
() автор топика

нашёл только очень странные решения вроде GNU parallel.

А что в нём странного? Как раз это и делает, если я правильно понял задачу. Ну он дутый, конечно, как всё гнутое, но инструмент тот.

Если хочется полегче и поюниксвейнее, есть ещё jobflow. Только он не везде в репах есть, в отличие от parallel. В Void есть, а в Арче, например, нет.

upd: хех стоило прочитать тред (и конкретно последний пост), прежде чем писать. Ну да ладно, зато про jobflow сказал, может заинтересует.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

решение:

parallel -u < execute.txt

С поисками -u намучился. В логе докера вывод странный, но и так сойдёт.

InterVi ★★★★★
() автор топика

Вообще если не хватает асинхронщины, то более правильное решение писать на ЯП которые из коробки умеют в мультипоток, например, C#/Java.

peregrine ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.