#amqp #worker #microservices #message #sdk #cloud

mcai_worker_sdk

AMQP Worker 监听并提供处理消息的特质

59个版本 (7个稳定版)

2.2.0 2024年6月13日
2.1.1-rc02023年10月24日
2.1.0 2023年9月28日
2.0.0-rc92023年7月20日
0.10.4 2020年6月3日

#413 in Web编程

Download history 9/week @ 2024-05-05 16/week @ 2024-05-19 222/week @ 2024-06-09 34/week @ 2024-06-16 1/week @ 2024-06-23 13/week @ 2024-06-30 346/week @ 2024-07-28

每月359次下载
2 crates 中使用

MIT 许可证

330KB
9K SLoC

mcAI Worker SDK

Build Status Coverage Status

mcAI Worker SDK 包含用于在 Media Cloud AI 中定义的每个 Worker 中使用的库。
它定义了与在 Elixir 中开发的 Step manager(名为 StepFlow)交换的通用方式。

文档

请使用此处可访问的自动生成的 Rust 文档:这里


lib.rs:

mcAI Worker SDK

此库是用于通过消息代理与 StepFlow 通信的 SDK。它作为抽象用于每个 Worker。它管理自身需求、消息解析、直接消息。

Worker 实现

  1. 创建 Rust 项目
  2. 在 Cargo.toml 中添加 MCAI Worker SDK 作为依赖项:mcai_worker_sdk = "^1.0"
  3. 更新主文件,使用此处提供的示例来实现 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,启用请使用 true1TRUETrue
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