Temporal Python 示例项目教程
1. 项目目录结构及介绍
Temporal Python 示例项目的目录结构如下:
samples-python/
├── README.md
├── requirements.txt
├── setup.py
├── src/
│ ├── __init__.py
│ ├── activities.py
│ ├── config.py
│ ├── main.py
│ ├── workflows.py
│ └── utils/
│ ├── __init__.py
│ └── helpers.py
└── tests/
├── __init__.py
├── test_activities.py
├── test_config.py
├── test_main.py
└── test_workflows.py
目录结构介绍
- README.md: 项目说明文件,包含项目的概述、安装步骤和使用说明。
- requirements.txt: 项目依赖文件,列出了项目运行所需的 Python 包。
- setup.py: 项目的安装脚本,用于安装项目及其依赖。
- src/: 项目的源代码目录。
- init.py: 使
src
目录成为一个 Python 包。 - activities.py: 定义了 Temporal 工作流中的活动(Activities)。
- config.py: 项目的配置文件,包含各种配置参数。
- main.py: 项目的启动文件,负责启动 Temporal 工作流。
- workflows.py: 定义了 Temporal 工作流(Workflows)。
- utils/: 包含项目中使用的辅助函数和工具。
- init.py: 使
utils
目录成为一个 Python 包。 - helpers.py: 包含一些通用的辅助函数。
- init.py: 使
- init.py: 使
- tests/: 项目的测试代码目录。
- init.py: 使
tests
目录成为一个 Python 包。 - test_activities.py: 测试
activities.py
中的活动。 - test_config.py: 测试
config.py
中的配置。 - test_main.py: 测试
main.py
中的启动逻辑。 - test_workflows.py: 测试
workflows.py
中的工作流。
- init.py: 使
2. 项目的启动文件介绍
项目的启动文件是 src/main.py
。该文件负责启动 Temporal 工作流,并调用定义在 workflows.py
中的工作流。
main.py
文件内容概述
from temporalio import workflow
from .workflows import MyWorkflow
def main():
# 初始化 Temporal 客户端
client = workflow.Client()
# 启动工作流
result = client.execute_workflow(MyWorkflow.run, "input_data")
# 输出工作流执行结果
print(f"Workflow result: {result}")
if __name__ == "__main__":
main()
启动文件功能说明
- 初始化 Temporal 客户端: 使用
workflow.Client()
初始化 Temporal 客户端。 - 启动工作流: 调用
client.execute_workflow()
方法启动MyWorkflow
工作流,并传入输入数据"input_data"
。 - 输出工作流执行结果: 打印工作流的执行结果。
3. 项目的配置文件介绍
项目的配置文件是 src/config.py
。该文件包含了项目的各种配置参数,如 Temporal 服务器的地址、端口、认证信息等。
config.py
文件内容概述
class Config:
TEMPORAL_SERVER_ADDRESS = "localhost"
TEMPORAL_SERVER_PORT = 7233
TEMPORAL_NAMESPACE = "default"
TEMPORAL_TASK_QUEUE = "my-task-queue"
TEMPORAL_CLIENT_CERT = None
TEMPORAL_CLIENT_KEY = None
config = Config()
配置文件功能说明
- TEMPORAL_SERVER_ADDRESS: Temporal 服务器的地址。
- TEMPORAL_SERVER_PORT: Temporal 服务器的端口。
- TEMPORAL_NAMESPACE: Temporal 命名空间。
- TEMPORAL_TASK_QUEUE: Temporal 任务队列名称。
- TEMPORAL_CLIENT_CERT: Temporal 客户端证书(可选)。
- TEMPORAL_CLIENT_KEY: Temporal 客户端密钥(可选)。
这些配置参数可以在 main.py
或其他需要的地方使用,以确保项目能够正确连接到 Temporal 服务器并执行工作流。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考