Найти - Пользователи
Полная версия: Запуск и останов скриптов в окружении Django
Начало » Django » Запуск и останов скриптов в окружении Django
1
Dimka665
Решил написать первое джанго-приложение - мониторинг игровых серверов.
Схемка работы такая:
1. При http-запросах, используя джанговский орм, из бд выбирается статистика игровых серверов - текущее кол-во игроков, название карты и т.д. С этим проблем нет.
2. Каждые пять минут эта информация должна обновляться, естественно, используя джанговские модельки, то есть, этот код должен запускаться вместе с джангой, останавливаться тоже вместе с джангой и иметь доступ к моделям/орм, использовать джанговские настройки БД.
Это возможно легко и просто и красиво сделать стандартными джанговыми средствами?
Александр Кошелев
Dimka665
Это возможно легко и просто и красиво сделать стандартными джанговыми средствами?
http://webnewage.org/2008/2/5/komandovat-paradom-budet-django/
Dimka665
Daevaorn
Dimka665
Это возможно легко и просто и красиво сделать стандартными джанговыми средствами?
http://webnewage.org/2008/2/5/komandovat-paradom-budet-django/
я это несколько раз читал))) так и не вкурил как эта штука может мне помочь)
мне надо создать команду, которая будет выполнять обновление статистики?
где и как ее вызывать?
poltergeist
Вот так я обхожусь, если что-то нужно потестить на скорую руку не пользуясь ./manage.py shell
(скрипт просто лежит в корне проекта)
import os, sys

sys.path.append(os.path.dirname(os.path.abspath(__file__)))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from apps.account.models import Account
print Account.objects.all()
Но кошернее наверное вашу задачу решить с помощью команд.
Где командам место: http://docs.djangoproject.com/en/dev/howto/custom-management-commands/#howto-custom-management-commands
Простой пример: http://code.djangoproject.com/browser/django/trunk/django/core/management/commands/cleanup.py
Александр Кошелев
Dimka665
я это несколько раз читал))) так и не вкурил как эта штука может мне помочь)
Это штука как раз поднимает окружение джанги вокруг какого-то функционала, который вы напишите в методе Command.execute()
Dimka665
мне надо создать команду, которая будет выполнять обновление статистики?
Да, например назвав её collectstats.py
Dimka665
где и как ее вызывать?
А вызывать просто
./manage.py collectstats
Dimka665
мне надо чтобы эта штука запускалась при старте сервера и сдыхала вместе с ним.
где мне выполнять эту команду?
Александр Кошелев
Dimka665
мне надо чтобы эта штука запускалась при старте сервера и сдыхала вместе с ним.
Такого не бывает. В общем случае невозможно выполнять что-то “параллельно” веб-серверу.
Dimka665
где мне выполнять эту команду?
Выполнять её на сервере. Если нужно с интервалами, то вставить в cron.
Dimka665
в течении двух дней заставлял джангу увидеть мою команду!!!
че я только не пробовал - ничего не помогало!
в итоге, исправил название папочки “managment” на “management” и заработало =)
спасибо всем за помощь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB