supvisor和celery以及django+vue的配置整理

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
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'
# Other Celery settings
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

对于前后端分离的项目,整合整个项目也属于后端的事情,有时候往往会遗漏掉点配置。所以也记录下这篇文章比较好的说明了。
设置里注意以下几点:

  1. 总的url中的对于index.html的模板视图
  2. 模板配置中添加模板路径
  3. 静态文件的搜索路径
  4. 对于部署到服务器上,如果是内部几乎没并发的小项目,可以使用supvisor配合python3 manage.py runserver来使用达到小服务器的作用