# 目录结构
当您初始化一个新的frappe-bench目录时,您将拥有一个类似的目录结构:
.
├── apps
├── frappe
├── config
├── redis_cache.conf
├── redis_queue.conf
└── redis_socketio.conf
├── env
├── logs
├── Procfile
└── sites
├── apps.txt
├── assets
├── common_site_config.json
└── site1.local
├── private
├── public
└── site_config.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# apps
frappe应用程序和其他基于frappe的应用程序位于此目录中。当您运行命令bench new-app app_name时,应用程序将在该目录中进行引导。您的自定义应用程序位于这里,您应该在这里编辑/工作。
了解更多关于应用程序的信息。
# sites
网站从这个目录中提供。当您运行命令bench new-site site_name时,网站将在该目录中创建。网站根据其目录名称进行区分。
了解更多关于网站的的信息。
# logs
此目录用于转储来自各个进程的日志文件。每个日志文件根据它记录的进程命名。
# config
Frappe使用3个Redis实例来管理缓存、作业排队和socketio通信。所有这些配置都放在这里。
# env
Python虚拟环境位于此目录中。基于Frappe的应用程序和Python包依赖项都安装在这里。
# Procfile
Frappe使用基于Procfile的进程管理。默认的Procfile如下所示:
redis_cache: redis-server config/redis_cache.conf
redis_socketio: redis-server config/redis_socketio.conf
redis_queue: redis-server config/redis_queue.conf
web: bench serve --port 8000
socketio: /usr/bin/node apps/frappe/socketio.js
watch: bench watch
schedule: bench schedule
worker_short: bench worker --queue short --quiet
worker_long: bench worker --queue long --quiet
worker_default: bench worker --queue default --quiet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
让我们看看每个进程的用途。
# redis_cache:
用于内存缓存的Redis。
# redis_socketio:
用作web和socketio进程之间的pub/sub,用于实时通信的Redis。
# redis_queue:
用于管理后台作业排队的Redis。
# web:
基于Werkzeug的Python Web服务器。
# socketio:
用于与浏览器进行实时通信的socketio连接的Node服务器。
# watch:
使用Rollup打包JS/CSS资源的Node服务器。 它还会在文件更改时重新构建。
# schedule:
使用Python RQ的作业调度器。
# worker_short:
超时时间为300秒的Python工作器。
# worker_long:
超时时间为1500秒的Python工作器。
# worker_default:
超时时间为300秒的Python工作器。