MCPcopy Create free account
hub / github.com/evilsocket/cake / run_as_worker

Function run_as_worker

cake-cli/src/main.rs:243–278  ·  view source on GitHub ↗

Worker setup: zero-config discovery or manual topology. Used by `run` (no model + cluster key) subcommand.

(mut args: Args)

Source from the content-addressed store, hash-verified

241/// Worker setup: zero-config discovery or manual topology.
242/// Used by `run` (no model + cluster key) subcommand.
243async fn run_as_worker(mut args: Args) -> Result<()> {
244 // Zero-config: wait for master assignment + model data
245 let listener_override = if let (Some(key), None) = (&args.cluster_key, &args.topology) {
246 if args.name.is_none() {
247 args.name = Some("worker".to_string());
248 }
249 let worker_name = args.name.as_deref().unwrap();
250 let cache_dir = cache_base_dir();
251 let (layers, model_path, listener) = cake::sharding::worker_setup(
252 worker_name,
253 key,
254 &args.address,
255 &cache_dir,
256 )
257 .await?;
258 args.model = model_path.to_string_lossy().to_string();
259 args.topology_override = Some(build_worker_topology(
260 worker_name,
261 &args.address,
262 &layers,
263 ));
264 Some(listener)
265 } else {
266 None
267 };
268
269 let mut ctx = Context::from_args(args)?;
270 if let Some(listener) = listener_override {
271 *ctx.listener_override.lock().unwrap() = Some(listener);
272 }
273 let ret = run_worker(&mut ctx).await;
274 if ret.is_err() {
275 println!();
276 }
277 ret
278}
279
280/// Shared master setup: zero-config discovery + dispatch.
281/// Used by `run` and `serve` subcommands.

Callers 1

mainFunction · 0.85

Calls 4

cache_base_dirFunction · 0.85
worker_setupFunction · 0.85
build_worker_topologyFunction · 0.85
run_workerFunction · 0.85

Tested by

no test coverage detected