Ir al contenido principal

Entradas

Mensajería sincrónica vs asincrónica

Synchronous or asynchronous consumer—One alternative is whether to use a Polling Consumer (494) or an Event-Driven Consumer (498) ¿Podés aclararme si el libro sugiere que el consumidor sincrónico viene a ser el polling y el asincrónico viene a ser el event driven? Sí, exactamente. El libro establece esa equivalencia de forma explícita en el capítulo de Messaging Endpoints (Puntos Finales de Mensajería). La relación que plantea es la siguiente: 🔄 Polling Consumer = Consumidor Sincrónico El Polling Consumer (o Synchronous Receiver ) es el que toma la iniciativa . El consumidor decide cuándo ir a buscar el mensaje (por ejemplo, llamando a receive() o poll() ). El hilo se queda bloqueado esperando hasta que el mensaje llega o se agota el tiempo. Es sincrónico porque el consumidor se acopla al ciclo de vida del mensaje: pide, espera y recibe en el mismo momento. ⚡ Event-Driven Consumer = Consumidor Asincrónico El Event-Driven Consumer (o Asynchronous Receiver ) es el que reacciona ....

Procesos paralelos y concurrencia

Executing multiple concurrent requests requires us to associate each message in the system to the correct process instance. No estoy de acuerdo, ya que el hecho de que los request se procesen concurrentemente implica que haya un único proceso vivo. Por lo tanto no hace tiene sentido establecer una asociación entre cada request y su correspondiente proceso, ya que habrá uno sólo. Tu objeción tiene sentido si interpretamos "proceso" como el proceso del sistema operativo que atiende las peticiones. En ese caso, efectivamente, un servidor concurrente suele tener un solo proceso vivo (o un pool fijo), y no hay una asociación 1:1 entre mensaje y proceso. Pero la frase original probablemente usa "process instance" en el sentido de instancia de proceso de negocio (por ejemplo, en un workflow, una saga, una transacción de larga duración o una máquina de estados). Ahí sí importa la asociación: Un proceso vivo a nivel técnico (el servidor) puede estar gestionando muchas i...

Laravel Database Query Builder and Model fillable array

  artisan tinker eloquent to do an update ... set ... = value Respuesta rápida To update a specific record in Laravel using Artisan Tinker and Eloquent , retrieve the model instance and assign the new value to the attribute, then call the save() method. $user = App\Models\User :: find ( 1 ); $user ->name = 'New Name' ; $user -> save (); Alternatively, you can use the update() method on a query builder instance for a direct database update without loading the model: App\Models\User :: where ( 'id' , 1 )-> update ([ 'name' => 'New Name' ]); Key Considerations: Mass Assignment : Ensure the attribute being updated is in the model's $fillable array, or use fill() before save() . Collections : If using ::all() or ::get() , you receive a collection. You must iterate through it or use ::find() to get a single model instance before calling save() . Persistence : Assigning a value (e.g., $user->name = '...' ) only changes the ob...

Desarrollo de sistema gerencial (parte 7)

  Vamos con la Etapa 12: actualizar DatabaseSeeder y hacer la prueba final del flujo completo . 🎯 Objetivo de esta etapa Actualizar DatabaseSeeder para incluir los seeders base + el DemoSeeder Ejecutar el flujo completo desde cero Verificar que el dashboard funcione con datos realistas 📝 1. Actualizar DatabaseSeeder php // database/seeders/DatabaseSeeder.php <?php namespace Database \ Seeders ; use Database \ Seeders \ Demo \ DemoSeeder ; use Illuminate \ Database \ Seeder ; class DatabaseSeeder extends Seeder { public function run ( ) : void { // ============================================ // SEEDERS BASE (siempre) // ============================================ $this -> call ( [ RolePermissionSeeder :: class , PrestacionSeeder :: class , ConsultorioSeeder :: class , PacienteSeeder :: class , AntecedentesMedicosSeeder :: class , ...