Будучи Linux
и нубом Bash, извините, если вопрос слишком базовый или отсутствует какая-либо критическая информация.
В основном я использую python-celery library
(с redisброкер) для параллельной обработки некоторых массивных json
файлов.
Прямо сейчас, способ, которым я добиваюсь этого (дайте мне знать, если есть лучший способ)
Терминал 1
$celery worker -A celery_worker -l info -c 64 #To start the celery worker service which listens for input
Терминал 2
$./pythonScript.py arg1 arg2 #Script to call the service
После выполнения задачи в терминале 2 я посылаю прерывание клавиатуры на терминал 1 с помощью Ctrl + C , и рабочий отключается.
Но как мне добиться всего этого, просто запустив один скрипт bash в терминале, то есть запустить службу celery_worker
, запустить скрипт python и затем завершить работу?
В качестве грязного обходного пути я могу заставить работника работать 24*7
, не выключая работника, и просто использовать скрипт python всякий раз, когда мне нужен сервис.Но я считаю, что это приведет к потере памяти, и у работников сельдерея есть раздражающая тенденция к самостоятельному закрытию через некоторое время.
Мне также нужно добавить всю процедуру в ежедневную работу cron.