Могу ли я установить имя файла twidd pid в файле конфигурации TAC?

Я могу установить имя файла .pid файл, предоставив --pidfile= возможность twistd, Есть ли способ, которым я могу указать это внутри .tac файл вместо?

Контекст:

Мой скрученный сервис - это бот, который играет в игру и принимает несколько параметров, таких как его имя, уровень квалификации и т. Д. Я создаю .tac файл для каждого бота (несколько ботов могут работать одновременно), чтобы каждый конкретный бот всегда имел одинаковые параметры, и я могу запустить его с twisted -y botname.tac,

Я бы хотел, чтобы файл pid был в форме <bot_nick>.pid так что разные боты не используют один и тот же файл pid, а также потому, что я могу видеть, какие из них запущены, просто перечислив файлы pid. Есть ли способ, которым я мог бы установить это в .tac сам файл или я всегда должен указывать его вручную в параметрах командной строки twistd, таких как twistd -y bot1.tac --pidfile=bot1.pid?

1 ответ

.tac файл предназначен для описания службы, которую можно запустить; тогда как варианты twistd варианты о том, как запустить сервис. Поэтому не имеет смысла помещать имя файла pidfile, или конфигурацию регистрации, или что-нибудь подобное в .tac файл. В этом случае .pid файл уже был написан к тому времени, когда ваш .tac файл читается, поэтому нет никакого способа сделать это, даже в качестве обходного пути.

Если вы хотите написать специализированную систему конфигурации, лучше написать инструмент, который использует twistd как библиотека, как этот пример из axiomatic инструмент, который поставляется с базой данных Axiom. Конечно, интерфейс мог бы быть лучше - в настоящее время вам действительно нужно синтезировать буквальную командную строку, используя строки, а также требовать создания подклассов - но это позволяет вам очень хорошо получить контроль над тем, как работает ваша служба, без попыток взлома до других бит глобального состояния только потому, что .tac файлы бывают Python.

Другие вопросы по тегам