LINUX.ORG.RU

Подскажите с архитектурой

 ,


0

1

Нужно сделать сервис-службу, которая будет выполнять задания (в фоновых процессах) по какому-нибудь шедуллеру с настройкой через http API.

Язык Python3. Но мне видится лишь:

1) веб-движок, который слушает API и пишет настройки в БД

2) второй скрипт, который по крону запускается, выбирает для себя порцию данных и обрабатывает их.

Вот мне не нравится вариант со сторонними планировщиками (крон). Или все-таки он оправдан? Просто хочется иметь возможность управлять количеством воркеров хотя бы.

★★★★★

Зачем второй скрипт?

API расширить, по одному запросу пишет в БД, по другому запросу обрабатывает данные.

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

запрос на обработку данных должен выполняться воркером(-ами) в глубоком фоне. возможно, на соседних машинах.

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

В первый раз вижу. На гитхабе всего 30 звёздочек и 5 форков, документация местами отсутствует, так что стабильности от этой штуки я бы не ждал.

grazor ★★
()
Последнее исправление: grazor (всего исправлений: 1)
Ответ на: комментарий от grazor

Почему бы просто в отдельном треде не выполнять задание? Здался этот celery...

Не то что бы я был против него, но во всех проектах что я его видел оно было оверкилом. Единственный use-case я вижу это когда нужно выполнять какое-нить жирное задание которое должно пережить падение слушающего процесса. Ну или когда всё упирается в GIL и прочие ресурсы.

true_admin ★★★★★
()
Ответ на: комментарий от grazor

это была 5я ссылка гугла :)

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

я ожидаю время выполнения задания порядка 4 часов

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

оверкилом

ТС писал, что хочет планировщик и выполнение задач на других машинах, так что ему в любом случае понадобится какая-то БД или MQ в качестве брокера. А так ли много оверхеда вносит сам сельдерей, чтобы вместо него писать свой велосипед?

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

Конечно, если нужно пускать на других хостах то лучше взять готовое решение (но этого не было в топике).

Оно, конечно, подойдёт и для локального запуска задач.Но нахрена плодить проблемы если есть готовый multiprocessing.pool и очереди? Этот celery ещё и запускать надо и настраивать, и к нему нужен брокер. И всё должно, по-хорошему, стартовать в определённой последовательности и останавливаться. И мониторить это всё нужно и тут гемора явно больше. И деплоить/обновлять сложнее. Всё только потому что лень пять строк на питоне написать. Потом люди подумают что им докер поможет, а докеру система «оркестрирования» и вообще нужно всё это засунуть в облако... Затем нужны дев-опы чтобы это всё обслуживать...

Утрирую, конечно. Вряд ли у ТС до этого дойдёт. А вот в нашей конторе дошло. Теперь есть целый отдел и субподрядчики чтобы это всё хотя бы не падало. А начиналось всё с «давайте просто возьмём celery». Шутка.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.