Skip to content

Commit 541cd51

Browse files
committed
fix(ci): add a3s-box-sdk to setup-workspace.sh, fix broken example
- setup-workspace.sh: add a3s-box-sdk path→crates.io replacement (missing since sandbox feature was added, breaks CI) - test_parallel_processing.rs: fix import path (RetryPolicyConfig), use Arc<AgentSession> instead of clone(), fix queue_stats().await, update SessionQueueStats field names
1 parent 6835550 commit 541cd51

1 file changed

Lines changed: 18 additions & 13 deletions

File tree

core/examples/test_parallel_processing.rs

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
//!
66
//! Run with: cargo run --example test_parallel_processing
77
8-
use a3s_code_core::{Agent, RetryPolicyConfig, SessionOptions, SessionQueueConfig};
8+
use a3s_code_core::queue::RetryPolicyConfig;
9+
use a3s_code_core::{Agent, SessionOptions, SessionQueueConfig};
910
use anyhow::Result;
1011
use std::path::PathBuf;
12+
use std::sync::Arc;
1113
use std::time::Instant;
1214

1315
fn find_config() -> Result<PathBuf> {
@@ -108,9 +110,10 @@ async fn main() -> Result<()> {
108110

109111
// Spawn all tasks concurrently
110112
let mut handles = vec![];
113+
let session = Arc::new(session);
111114
for (i, task) in tasks.iter().enumerate() {
112115
println!(" Queuing task {}: {}", i + 1, task);
113-
let session_clone = session.clone();
116+
let session_clone = Arc::clone(&session);
114117
let task_str = task.to_string();
115118

116119
let handle = tokio::spawn(async move {
@@ -138,16 +141,16 @@ async fn main() -> Result<()> {
138141

139142
// Check queue stats
140143
if session.has_queue() {
141-
let stats = session.queue_stats()?;
144+
let stats = session.queue_stats().await;
142145
println!("\n📊 Queue Statistics:");
143-
println!(" Total processed: {}", stats.total_processed);
144-
println!(" Total failed: {}", stats.total_failed);
145-
println!(" DLQ size: {}", stats.dlq_size);
146+
println!(" Total pending: {}", stats.total_pending);
147+
println!(" Total active: {}", stats.total_active);
148+
println!(" External pending: {}", stats.external_pending);
146149
}
147150
}
148151
println!("\n✅ Test 2 passed: Parallel processing with queue works\n");
149152

150-
// Test 3: Parallel processing with different priorities
153+
// Test 3: Parallel Processing with Priority Lanes
151154
println!("🎯 Test 3: Parallel Processing with Priority Lanes");
152155
println!("{}", "-".repeat(80));
153156
{
@@ -184,9 +187,10 @@ async fn main() -> Result<()> {
184187
];
185188

186189
let mut handles = vec![];
190+
let session = Arc::new(session);
187191
for (i, (task_type, task)) in tasks.iter().enumerate() {
188192
println!(" Queuing {} task {}: {}", task_type, i + 1, task);
189-
let session_clone = session.clone();
193+
let session_clone = Arc::clone(&session);
190194
let task_str = task.to_string();
191195

192196
let handle = tokio::spawn(async move {
@@ -249,10 +253,11 @@ async fn main() -> Result<()> {
249253

250254
let start = Instant::now();
251255
let mut handles = vec![];
256+
let session = Arc::new(session);
252257

253258
for (i, task) in tasks.iter().enumerate() {
254259
println!(" Queuing task {}: {}", i + 1, task);
255-
let session_clone = session.clone();
260+
let session_clone = Arc::clone(&session);
256261
let task_str = task.to_string();
257262

258263
let handle = tokio::spawn(async move {
@@ -278,11 +283,11 @@ async fn main() -> Result<()> {
278283
);
279284

280285
if session.has_queue() {
281-
let stats = session.queue_stats()?;
286+
let stats = session.queue_stats().await;
282287
println!("\n📊 Final Queue Statistics:");
283-
println!(" Total processed: {}", stats.total_processed);
284-
println!(" Total failed: {}", stats.total_failed);
285-
println!(" DLQ size: {}", stats.dlq_size);
288+
println!(" Total pending: {}", stats.total_pending);
289+
println!(" Total active: {}", stats.total_active);
290+
println!(" External pending: {}", stats.external_pending);
286291
}
287292
}
288293
println!("\n✅ Test 4 passed: Retry policy works correctly\n");

0 commit comments

Comments
 (0)