1,生产的NGINX环境,要指定自己的目录,而不是PROJ默认的。

upstream ism_host {
    server ;
}

server {
        listen       ;
        server_name  localhost;

        location / {
            include  uwsgi_params;
            uwsgi_pass  ism_host;
            uwsgi_param UWSGI_SCRIPT settings.wsgi;//自己生产的WSGI文件
            uwsgi_param UWSGI_CHDIR /ism/ism;
            index  index.html index.htm;
            client_max_body_size 35m;
            uwsgi_connect_timeout ;
           #uwsgi_write_timeout ;
            uwsgi_read_timeout ;
        }
        location ^~ /static {
                root /ism/ism;
        }
    }

2,DJANGO的WSGI.PY有两套,生产的也要指向自己的SETTINGS文件。

"""
WSGI config for ism project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.prd_settings")//指向自己生产的配置文件路径

application = get_wsgi_application()

3,SUPERVISORD的配置文件,也要改成自己的SETTING文件。

[program:celeryd]
command=/usr/local/python27/bin/celery worker --app=settings -c  -l info //注意--app指向生产的配置文件目录
stdout_logfile=/var/log/celeryd.log
stderr_logfile=/var/log/celeryd.log
autostart=true
autorestart=true
startsecs=
stopwaitsecs=

4,配置文件路径下的CELERY.PY文件,也要更新成自己的配置路径。

from __future__ import absolute_import

import os
from celery import Celery
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings.prd_settings') //此处也是生产的配置目录及文件

app = Celery('ism')

app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))

6,settings文件里的数据库连接串,REDIS等,当然也需要分开,不再说配置了。

这样一来,不在同的环境下使用@celery_app.task时,NGINX提供服务器时,SUPERVISORD定位时,自己本地调试时,才不会出问题。

SO:

建立生产和测试的目录彻底分开,互不影响。各自己建立一套配置文件。

独立两套DJANGO+CELERY配置(生产+测试)时要注意的一些细节的更多相关文章

  1. django celery redis简单测试

    希望在下一版中,能用这个小芹菜,来实现异步的多任务并行哈. 安装REDIS之类的不表,只说在DJANGO当中要注意配置的事项. 0,安装插件 yum install redis-server pip ...

  2. django安装配置及测试

    django安装之前我们假设你已经安装了python,和mysql(不是必须的):(如果没有google一下挺简单不介绍了)下面直接介绍django的安装配置:到下面连接可以下载www.djangop ...

  3. 配置SSD-caffe测试时出现“Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal”解决方案

    这是由于GPU数量不匹配造成的,如果训练自己的数据,那么我们只需要将solver.prototxt文件中的device_id项改为自己的GPU块数,一块就是0,两块就是1,以此类推. 但是SSD配置时 ...

  4. django celery redis 定时任务

    0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择.   cele ...

  5. django+celery+redis实现运行定时任务

    0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择.   cele ...

  6. 基于Django+celery二次开发动态配置定时任务 ( 一 )

    需求: 前端时间由于开发新上线一大批系统,上完之后没有配套的报表系统.监控,于是乎开发.测试.产品.运营.业务部.财务等等各个部门就跟那饥渴的饿狼一样需要 各种各样的系统数据满足他们.刚开始一天一个还 ...

  7. 配置Django框架为生产环境的注意事项(DEBUG=False)

    问题描述: Django1.10版本中框架中settings.py配置文件 配置文件settings.py配置了下面两项: DEBUG= False ALLOWED_HOSTS = ['*'] #这样 ...

  8. 基于Django+celery二次开发动态配置定时任务 ( 二)

    一.需求 结合上一篇,使用djcelery模块开发定时任务时,定时任务的参数都保存在djcelery_periodictask表的args.kwargs字段里,并且是json格式.那么,当定时任务多了 ...

  9. MAC中如何配置两套android-sdk环境

    1 背景介绍 随着android studio的完善和普及,越来越多Android app开发者从Eclipse+ADT环境转到Android Studio(后文统一用AS表示).但是,AS往往需要较 ...

随机推荐

  1. python学习第二天:数字与字符串转换及逻辑值

    1.数字与字符串的转化     #1.数字转字符,使用格式化字符串:         *1.demo = ‘%d’  %  source         *2.%d整型:%f 浮点型 :%e科学计数 ...

  2. ###STL学习--适配器

    点击查看Evernote原文. #@author: gr #@date: 2014-08-24 #@email: forgerui@gmail.com STL中的适配器. ###stl学习 |--迭代 ...

  3. OC1_数组创建

    // // main.m // OC1_数组创建 // // Created by zhangxueming on 15/6/11. // Copyright (c) 2015年 zhangxuemi ...

  4. FlashBuilder启动时一闪而过

    晚上的时候把项目目录直接剪切走了 早晨就打不开了 去workspace看log  .\workspace\.metadata\.log 发现如下代码!MESSAGE Could not read me ...

  5. javascript form验证、完善 第24节

    <html> <head> <title>Form对象</title> <style type="text/css"> ...

  6. 九度OJ 1386 旋转数组的最小数字 【算法】

    题目地址:http://ac.jobdu.com/problem.php?pid=1386 题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋 ...

  7. iOS 构造方法

    构造方法:用于在对象创建出来的时候为对象的成员变量或者属性赋值 1.构造方法就是初始化对象的方法,它属于对象方法.构造方法分为系统自带和自定义构造方法. 如何创建自定义构造方法: 属于对象方法那么以  ...

  8. Linux 系统结构详解

    Linux 系统结构详解 Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统 ...

  9. JavaScript 对象的几种创建方法

    /** * Created by 2016 on 2016/6/4. */ function Box(){ var obj = new obj(); obj.name = "Lee" ...

  10. 如何使用ERStudio 生成comment

    在ER使用中,在生成sql过程中,如何批量生成字段描述,如何批量添加Owner,请看下文: 1.ER生成字段描述 2.ER生成描述添加Owner 使用的ER版本是8.0,英文版本,在操作过程中,有些配 ...