Найти - Пользователи
Полная версия: Подтянуть orm и logging в сторонний скрипт.
Начало » Django » Подтянуть orm и logging в сторонний скрипт.
1
soln
Приветствую.
Появилась необходимость заполучить orm и конфигурацию logging в сторонний (работающий по крону ) скрипт.
На шел вот это:
calling-django-setup-is-required-for-standalone-django
И модель приезжает, а вот с логером проблемы.

                                                            
 import logging                                                                   
 import os                                                                        
 import sys                                                                       
 os.environ['DJANGO_SETTINGS_MODULE'] = "Dance.settings"                        
 sys.path.append("/usr/local/www/Dance/")                                       
                                                                                  
 import django                                                                    
 from django.conf import settings                                                 
 from Dance import settings as may_settings                                     
 settings.configure(may_settings, DEBUG=True)                                     
 django.setup()                                                                   
 core_log = logging.getLogger('app.messenger.core')                               
 core_log.debug('core starting')                  

При исполнении кидает эксепшен.
AttributeError: ‘module’ object has no attribute 'LOGGING_CONFIG

однако:
soln@dance:/usr/local/www/Dance$ grep LOGGING_CONFIG /usr/local/lib/python2.7/dist-packages/django/conf/global_settings.py ./Dance/settings.py
/usr/local/lib/python2.7/dist-packages/django/conf/global_settings.py:LOGGING_CONFIG = 'logging.config.dictConfig'.

То есть LOGGING_CONFIG определён в глобальных настройках django, однако похоже было перезаписан в процессе вызова settings.configure(may_settings, DEBUG=True) .

Что я делаю не так?

Ps.
Возможно мне вообще не стоит отрывать куски django и пихать их в крон. Может это принято делать иначе.
К примеру. Задача, есть у вас список пользователей, вы хотите отправить раз в год им письмо, в день рождения. И где то в их аккаунтах (orm) добавить к их счету кокой то там интаджер. Как принято реализовывать такое?
buddha
Создай команду в проекте , а в кроне запусти её через абсолютный путь до сценария /Project/dir/manage.py your_command. Это рекомендуемый и общепринятый способ запуска сценариев с джанго-настройками. Проблемы с логером должны уйти. Вручную тебе прописывать инициализацию настроек и т.п. не будет необходимости, ссылка на доку ниже.

Standalone scripts

Custom management commands are especially useful for running standalone scripts or for scripts that are periodically executed from the UNIX crontab or from Windows scheduled tasks control panel.
https://docs.djangoproject.com/en/dev/howto/custom-management-commands/
soln
buddha
Создай команду в проекте , а в кроне запусти её через абсолютный путь до сценария /Project/dir/manage.py your_command. Это рекомендуемый и общепринятый способ запуска сценариев с джанго-настройками. Проблемы с логером должны уйти. Вручную тебе прописывать инициализацию настроек и т.п. не будет необходимости, ссылка на доку ниже.
Спасибо.
Также нашел про Асинхронные задания в Django c помощью Celery .
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