-
Notifications
You must be signed in to change notification settings - Fork 1
ZH CN Getting Started
开始使用 Procodile 的最简单方式,是直接从 GitHub Releases 页面下载预先静态编译好的 procodile 二进制文件。当前提供 AMD64、ARM64 和 Apple Darwin 平台的安装包。
下载完成后,请将 procodile 可执行文件所在目录加入系统的 PATH 环境变量。
需要注意的是,procodile 运行时要求当前工作目录中存在 Procfile 文件,否则无法正常启动。
Procodile 会从应用根目录中的 Procfile 读取进程定义。
例如,创建一个 Procfile:
web: bundle exec puma -C config/puma.rb
worker: bundle exec rake app:worker其中,每一项都定义了一个进程名和要执行的命令。
你也可以在 Procfile 所在目录下创建 Procfile.options 和 Procfile.local 文件,用于定义额外配置。其中,Procfile.local 的配置会覆盖 Procfile.options。
更多内容见 配置。
procodile start 会立即启动普通的长期运行进程。
定时进程在执行 start 后会被启用,但不会立刻运行。它们会在下次匹配到调度时间时运行。
如果这是你第一次运行 Procodile,通常建议先用开发模式启动。这样 Procodile 会在前台运行,你可以直接看到日志里发生了什么。
procodile start --dev如果要像 Foreman 那样在后台启动,可以这样执行:
procodile start这种情况下,你刚才在终端里看到的日志输出,就会被保存到应用根目录下的 procodile.log 文件中。
命令细节见 start command。
启动 supervisor 时,可以通过 env 文件加载环境变量:
procodile start --env-file
procodile start --env-file .env.production如果没有指定文件名,就默认使用 .env。关于优先级和文件加载行为,见 环境文件。
停止所有正在运行的进程:
procodile stop停止指定的进程或实例:
procodile stop -p web
procodile stop -p web.2对于定时进程,stop -p job 会关闭后续调度。如果你还想立即停止当前正在运行的定时实例,可以显式停止那个实例,例如 procodile stop -p job.3。
命令细节见 stop command。
重启配置中的长期运行进程:
procodile restart只重启部分进程类型:
procodile restart -p web,worker定时进程的行为不同:restart 会重新加载并重新启用它们的调度,但不会立即执行。
如果你显式指定一个正在运行的定时实例,例如 procodile restart -p job.3,Procodile 会重启这个实例,同时也会重新开启这个 job 后续的调度。
命令细节见 restart command。
查看当前状态:
procodile status查看更简洁、适合机器处理的摘要:
procodile status --simple命令细节见 status command。
修改 Procfile 或 options files 之后,可以使用 procodile reload 更新正在运行中的 supervisor 配置。
procodile reload定时进程相关的改动会立即生效。长期运行进程则会在下次重启时读取新的配置。
命令细节见 reload command。
除了普通的长期运行进程,Procodile 也支持定时任务。
例如:
"cleanup__AT__*/10 * * * * *": bundle exec rake cleanup定时进程不会因为 start 或 restart 而立刻执行。它们会先被启用,然后在下次匹配到调度时间时运行。
在真正依赖某个定时任务之前,通常最好先用 procodile run 手动执行一次对应命令,确认它能正常运行、不会报错。
详情见 定时进程。
Procodile 会跟踪一些重要的运行时问题,例如:
- 进程反复失败
- 定时任务的 cron 表达式无效
- 因为前一次运行还没结束,定时任务连续多次被跳过
这些问题会显示在 status 输出中,也会在 CLI 命令执行结束后显示出来。
详情见 运行时问题与错误。