# 目录结构

当您初始化一个新的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

# 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

让我们看看每个进程的用途。

# redis_cache:

用于内存缓存的Redis。

# redis_socketio:

用作websocketio进程之间的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工作器。

最后更新时间: 9/27/2024, 3:24:28 PM