zoukankan      html  css  js  c++  java
  • 解决因为uWSGI部署产生的No Mode lNamed xxx 问题

    1 celery不能使用的具体情况

    • 当时用独立的celery模块为项目添加了定时、超时和异步任务,当时celery是可以使用的,超时以及定时任务都实现了效果,但是会遇到如下问题。

    1.1 No Model named celery_task

    • 前端和后端实现部署以后,每当调用到celery的代码,就会出现这样的问题
    • 查阅了很多资料,最后发现必须要在项目函数内部,添加根路径才能识别。
    1.1.1 项目目录

    1.1.2 解决方案
    • 在引入模块的地方加上文件夹根目录
    • 一定要在内部导包
    sys.path.insert(0, r'/home/worker/opwf_project')
    from celery_task import tasks
    tasks.send_email.delay(user_list)
    

    1.2 No Named Celery

    • 在解决完以上错误后,又显示找不到Celery方法
    1.2.1 出现问题的地方

    1.2.2 解决方案
    • 将启动文件改成celery_lk.py
    • 这样可以防止引入时和方法名重名
    # 还需注意的地方,这样命名以后,就不能用以前文件夹启动celery的方法
    # 启动命令改为
    celery -A celery_task.celery_lk worker  -l INFO
    celery -A celery_task.celery_lk beat  -l INFO
    

    2 Django路径问题引入

    2.1 路径问题引入

    import sys
    当前文件夹优先搜索(同名会覆盖)
    BASE_DIR 指的是django项目根路径
    print(os.path.abspath(__file__))
    # 当前文件绝对路径
    # /root/shiyanlou_project/syl/syl/settings.py
    print(sys.path.insert(0,os.path.join(BASE_DIR,'apps')))
    # /root/shiyanlou_project/syl/apps/
    

    2.2 操作系统文件绝对路径

    django静态文件查找,模板查找

    # 去配置好的文件夹中查找指定的文件
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    STATIC_URL = '/static/'
    # /teacher/shiyanlou_project/syl/apps/user/			# linux
    # E:\_000XSX
    

    2.3 django导包路径

    第一访问:当前文件夹
    导包之前,包的上级路径,需要存在于python system的path
    sys.path 这是一个列表
    '''
    sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
    '''
    from xxx import yyy 才能成功
    第二访问才回去路径,列表的索引为0
    

    2.4 django模型引用路径

    想使用一个 models.py 文件中的模型
    apps名称.model模型名
    'users.User'
    

    3 部署排错时一些常用命令

    3.1 nginx命令

    systemctl restart nginx				# 重启nginx
    tail -f /var/log/nginx/error.log	# 查看nginx错误日志
    tail -f/var/log/nginx/access.log	# 查看接入日志
    

    3.2 uwsgi重启

    uwsgi --ini uwsgi.ini						# 启动
    cd /home/worker/opwf_project/uwsgi_conf		# 切换到指定路径
    tail -f *									# 查看指定
    ps -ef|grep uwsgi							# 查看uwsgi启动端口
    

    3.3 查看端口占用情况

    netstat -anptu | grep 8888
    
  • 相关阅读:
    Sharepoint 文档库根据文件夹层级展示
    SQL数据库修改默认备份和恢复路径
    利用Ajax增删改Sharepoint List Item
    Excel数据导入到Sharepoint List
    使用powershell部署WSP包
    高阶组件
    ui组件库
    2019面试题总结
    项目上线步骤及注意事项
    git使用
  • 原文地址:https://www.cnblogs.com/mapel1594184/p/14120302.html
Copyright © 2011-2022 走看看