59个版本 (7个稳定版)
2.2.0 | 2024年6月13日 |
---|---|
2.1.1-rc0 | 2023年10月24日 |
2.1.0 | 2023年9月28日 |
2.0.0-rc9 | 2023年7月20日 |
0.10.4 | 2020年6月3日 |
#413 in Web编程
每月359次下载
在 2 crates 中使用
330KB
9K SLoC
mcAI Worker SDK
mcAI Worker SDK 包含用于在 Media Cloud AI 中定义的每个 Worker 中使用的库。
它定义了与在 Elixir 中开发的 Step manager(名为 StepFlow)交换的通用方式。
文档
请使用此处可访问的自动生成的 Rust 文档:这里。
lib.rs
:
mcAI Worker SDK
此库是用于通过消息代理与 StepFlow 通信的 SDK。它作为抽象用于每个 Worker。它管理自身需求、消息解析、直接消息。
Worker 实现
- 创建 Rust 项目
- 在 Cargo.toml 中添加 MCAI Worker SDK 作为依赖项:
mcai_worker_sdk = "^1.0"
- 更新主文件,使用此处提供的示例来实现 MessageEvent 特质,并调用
start_worker
来启动 Worker。
use mcai_worker_sdk::prelude::*;
use serde_derive::Deserialize;
use schemars::JsonSchema;
#[derive(Debug)]
struct WorkerNameEvent {}
#[derive(Debug, Deserialize, JsonSchema)]
struct WorkerParameters {}
// For opensource workers
default_rust_mcai_worker_description!();
// Or uncomment one of these lines for licensed workers
// default_rust_mcai_worker_description!(Private);
// default_rust_mcai_worker_description!(Commercial);
// You can also specify the name of your organisation
// default_rust_mcai_worker_description!("My Organisation", Commercial);
impl McaiWorker<WorkerParameters, RustMcaiWorkerDescription> for WorkerNameEvent {
}
static WORKER_NAME_EVENT: WorkerNameEvent = WorkerNameEvent {};
// uncomment it to start the worker
// fn main() {
// mcai_worker_sdk::start_worker(&WORKER_NAME_EVENT);
// }
运行时配置
AMQP 连接
变量 | 描述 |
---|---|
AMQP_HOSTNAME |
AMQP 服务器 IP 或主机(默认:localhost ) |
AMQP_PORT |
AMQP 服务器端口(默认:5672 ) |
AMQP_TLS |
启用使用 AMQPS 的安全连接(默认:false ,启用请使用 true 或 1 或 TRUE 或 True ) |
AMQP_USERNAME |
用于连接到 AMQP 服务器用户名(默认:guest ) |
AMQP_PASSWORD |
用于连接到 AMQP 服务器密码(默认:guest ) |
AMQP_VHOST |
AMQP 虚拟主机(默认:/ ) |
AMQP_QUEUE |
用于接收工作订单的AMQP队列名称(默认:job_undefined ) |
AMQP_SERVER_CONFIGURATION |
RabbitMP配置。可以是独立模式或集群模式(默认:standalone ) |
Vault连接
变量 | 描述 |
---|---|
BACKEND_HOSTNAME |
连接到后端服务器的URL(默认:http://127.0.0.1:4000/api ) |
BACKEND_USERNAME |
用于连接到后端服务器的用户名 |
BACKEND_PASSWORD |
用于连接到后端服务器的密码 |
本地启动工作进程
MCAI工作进程SDK可以在本地启动 - 不需要RabbitMQ。它可以处理不同目的的消息(功能测试、消息顺序示例等)。
要在此模式下启动工作进程,设置环境变量SOURCE_ORDERS
,并指定JSON订单的路径。它可以接受多个订单,在Unix平台上用:
连接,在Windows操作系统上用;
连接。
示例
RUST_LOG=info SOURCE_ORDERS=./examples/success_order.json:./examples/error_order.json cargo run --example worker
依赖项
~31–47MB
~774K SLoC