Nivel 139: Background sin capture_error (Default)

Objetivo

Confirmar el comportamiento por defecto: errores en background son ignorados silenciosamente.

Código Fuente

"""
DEMO LEVEL 139: Background sin capture_error (default)
-------------------------------------------------------
Adds: Background con capture_error=False por defecto.
Continues: L138.

DIAGRAM:
Background(task) = Background(task, capture_error=False)
"""

import time

from wpipe import Pipeline, step
from wpipe.pipe.components.logic_blocks import Background


@step(name="start")
def start(data):
    print("📌 Iniciando...")
    return {"started": True}


@step(name="failing_task")
def failing_task(data):
    print("🔄 [BACKGROUND] Tarea que fallará (sin capture)...")
    time.sleep(0.05)
    raise RuntimeError("Error silencioso")


@step(name="continue_step")
def continue_step(data):
    print("✅ Pipeline continúa (error ignorado)...")
    return data


if __name__ == "__main__":
    print(">>> DEMO 139: Background sin capture_error")
    print("=" * 50)

    pipe = Pipeline(pipeline_name="demo_139", verbose=True)

    pipe.set_steps([
        start,
        Background(failing_task),  # capture_error=False por defecto
        continue_step,
    ])

    result = pipe.run({})
    print("\n✅ El error fue ignorado (silent fail)!")

Resultado de Ejecución


>>> DEMO 139: Background sin capture_error
==================================================
📌 Iniciando...
🔄 [BACKGROUND] Tarea que fallará (sin capture)...
✅ Pipeline continúa (error ignorado)...
demo_139 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00

✅ El error fue ignorado (silent fail)!