1.安装 supervisor
pip install supervisor
2.创建supervisor配置文件,命令如下:
进入项目文件
echo_supervisord_conf > supervisord.conf
vim supervisord.conf
在末尾输入:
[program:celeryd] # 进程的名字
command=/opt/python/bin/celery worker -A worker --loglevel=info stdout_logfile=/django/celery/celeryd.log stderr_logfile=/django/celery/celeryd.log autostart=true autorestart=true startsecs=10 stopwaitsecs=600
[program: ProjectName]
command=dotnet ProjectName.dll ; 运行程序的命令
directory=/root/Publishing/PublishOutput/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
autostart=true ; 是否自动启动
stderr_logfile=/var/log/ProjectName.err.log ; 错误日志文件
stdout_logfile=/var/log/ProjectName.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
startsecs=1 ; 自动重启间隔
在Django 目录下执行
supervisord
supervisorctl 命令
在启动后台执行之后,可以使用supervisorctl
命令查看后台的日志信息,以及重启服务。
$ supervisorctl tail celeryd # 查看最后的日志
$ supervisorctl tail -f celeryd # 持续
$ supervisorctl restart celeryd
$ supervisorctl status celeryd
$ supervisorctl start celeryd
$ supervisorctl stop celeryd
3.supervisorctl查看和停止supervisor的状态: 报错后可查看
/django/celery/celeryd.log
supervisorctl status # 查看状态 reread # 读取配置信息 update # 加载最新的进程 stop # 停止进程 start # 启动进程 reload # 重新加载配置
HDF
numarray 1.5.1
Angles between two ndimensional vectors in Python Stack Overflow
3D stem plot
linq to sql一定要注意的地方!
将IRepository接口进行抽象,使它成为数据基类的一个对象,这样每个子类都可以有自己的最基础的CURD了
(SQL)比较一个集合是否在另一个集合里存在的方法
linq to sql统一更新方法,直接返回更新的对象(解决更新后再刷新数据错误显示问题)
LINQ TO SQL数据实体应该这样设计(解决多表关联问题)