feat(backend): flow streaming (#6520)

* feat(backend): flow streaming

* all streaming languages + sync api

* sqlx

* fix build

* UI and nits

* nit

* feat: stream last flow step

* sqlx

* nit

* use get for stream endpoints + add snippet in UI

* refactor

* nits

* Update backend/windmill-worker/src/common.rs

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* nits

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
This commit is contained in:
hugocasa
2025-09-18 17:49:35 +02:00
committed by GitHub
parent 943ed0e1ca
commit a2b34f3e08
41 changed files with 1031 additions and 326 deletions

View File

@@ -121,7 +121,7 @@ use windmill_common::s3_helpers::OBJECT_STORE_SETTINGS;
use crate::{
common::{
create_args_and_out_file, get_reserved_variables, read_file, read_result,
start_child_process, OccupancyMetrics,
start_child_process, OccupancyMetrics, StreamNotifier,
},
handle_child::handle_child,
worker_utils::ping_job_status,
@@ -386,6 +386,7 @@ pub async fn uv_pip_compile(
false,
occupancy_metrics,
None,
None,
)
.await
.map_err(|e| {
@@ -864,6 +865,8 @@ mount {{
start_child_process(python_cmd, &python_path, false).await?
};
let stream_notifier = StreamNotifier::new(conn, job);
let handle_result = handle_child(
&job.id,
conn,
@@ -878,6 +881,7 @@ mount {{
false,
&mut Some(occupancy_metrics),
None,
stream_notifier,
)
.await?;