@HgeN

Как организовать пользовательский скриптинг в python-приложении?

Есть необходимость реализовать возможность написания кастомных обработчиков логики. Подразумевается, что писать обработчики придется простым пользователям мало знакомым с программированием.

При этом само приложение асинхронно (tornado) и нельзя допускать чтобы пользовательский скрипт заблокировал основной поток исполнения. Смотрел в сторону альтернативных интерпретаторов и гринлетов, но не нашел хороших примеров реализации подобной задачи.
  • Вопрос задан
  • 2387 просмотров
Решения вопроса 1
alexclear
@alexclear
A cat
Исходя из требования невозможности блокировки стейт-машины Tornado следует вывод о необходимости создания пула обработчиков пользовательских скриптов (на чем бы они ни были) и управления этим пулом. Планировщик может работать простейшим образом - при старте создается N воркеров, далее, при назначении задания на воркер, он помечается как занятый. Когда пользовательский скрипт отработал, воркер освобождается. Если все воркеры заняты, пользовательские задачи стоят в очереди,

кстати, если с самого начала взять систему, имплементирующую очереди - RabbitMQ, например, то все становится еще лучше - вместо пула обработчиков в приложении создается пул консьюмеров соотв. очереди в RabbitMQ, причем, консьюмеров можно добавлять динамически, не релоадя никакие конфиги торнадо-сервера.
А вот на чем будут написаны сами пользовательские скрипты - это вообще неважно, хоть на VB.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 10:00
10000 руб./за проект
29 мар. 2024, в 09:59
750 руб./в час
29 мар. 2024, в 09:55
50000 руб./за проект