Django и SaaS + Ztask для фоновых задач

Раньше я задавал вопрос о том, как создать приложение SaaS с помощью Django Django и SaaS. Как использовать отдельную базу данных для каждого сайта Django?

Теперь, когда пользователь создает новый экземпляр для себя, я просто создаю для него новый файл settings.py и создаю конфигурацию apache для его поддомена. Теперь, когда пользователь пытается получить доступ к своему экземпляру, он может видеть только свою собственную базу данных, поэтому у нас есть полное разделение данных.

Теперь возникает проблема при попытке выполнять фоновые процессы при наличии этих отдельных баз данных. Фоновые процессы должны быть специфичны для каждого экземпляра, воздействуя только на данные этого экземпляра. Демон ZTask использует для запуска файл настроек. Вопрос в том, нужно ли запускать отдельный процесс ztaskd для каждого экземпляра Django? или я могу запустить ztaskd один раз для всех экземпляров?


person thelinuxer    schedule 03.05.2012    source источник
comment
Я использую этот сценарий для управления экземплярами ztaskd, но у меня нет времени его объяснять... надеюсь, что он может быть полезен для вашего вдохновения gist.github.com/2585486   -  person jpic    schedule 03.05.2012


Ответы (1)


ztaskd работает в контексте конкретного экземпляра Django, поэтому вы не можете использовать один демон ZTask для нескольких экземпляров Django.

Вы должны запустить ztaskd для каждого экземпляра Django с его локальными настройками. В основном запустите его, используя

python manage.py ztaskd --settings=clients.site_settings &

Не забудьте иметь неконфликтующие ZTASKD_URL для каждого экземпляра. Для местных ztaskd

ZTASKD_URL = 'ipc:///tmp/%s_ztask.sock' % SITE_NAME

как было предложено в ответ на ваш предыдущий вопрос - хорошая идея.

person vartec    schedule 03.05.2012