supvisor经常用来打包服务(领导喜欢service这个词,无语),celery用来做异步任务以及定时任务。web项目常常使用前后端分离,django+vue的组合,但是也要做一些配置,这里对一些以往的配置做一些整理,省的每次都要翻以前的项目,权当记录手册。
1. Supvisor+Celery配置
假设有个叫smartmp的项目,那么有如下配置。
supvisor对celery beat的配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [program:smartmpbeat]
command=/usr/local/bin/celery -A smartmp beat -l info
directory=/home/baird/PycharmProjects/smartmp
user=baird
numprocs=1
stdout_logfile=/var/log/celery/smartmp_beat.log stderr_logfile=/var/log/celery/smartmp_beat.log
autostart= false
autorestart=true
stopwaitsecs = 600 killasgroup=true priority=999
|
supvisor对celery workers的配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [program:smartmpworker]
command=/usr/local/bin/celery -A smartmp worker -l info
directory=/home/baird/PycharmProjects/smartmp
user=baird
numprocs=1
stdout_logfile=/var/log/celery/smartmp_worker.log stderr_logfile=/var/log/celery/smartmp_worker.log
autostart= false
autorestart=true
stopwaitsecs = 600 killasgroup=true priority=998
|
celery在django settings中的配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| CELERY_BROKER_URL = 'redis://localhost:6379' CELERY_RESULT_BACKEND = 'redis://localhost:6379' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_RESULT_SERIALIZER = 'json' CELERY_TASK_SERIALIZER = 'json' CELERY_TIMEZONE = 'Asia/Shanghai'
CELERY_BEAT_SCHEDULE = { 'get_di_value': { 'task': 'di.tasks.get_di_value', 'schedule': 5.0, }, }
|
**这边虽然用Supvisor配置的celery,但是也可以当做是配置运行普通Python脚本,把command命令替换即可,关于supvisor的其他参数可以看这里**。
关于celery的话,自从celery到了4.0之后,就可以不需要配合其他django插件集成到django中。那会网上的坑贼多,全是老教程,直到我找到了一篇启蒙教程,写的太好啦,一目了然。
2. 整合Django和Vue.js
对于前后端分离的项目,整合整个项目也属于后端的事情,有时候往往会遗漏掉点配置。所以也记录下这篇文章比较好的说明了。
设置里注意以下几点:
- 总的url中的对于
index.html
的模板视图
- 模板配置中添加模板路径
- 静态文件的搜索路径
- 对于部署到服务器上,如果是内部几乎没并发的小项目,可以使用supvisor配合python3 manage.py runserver来使用达到小服务器的作用