Paquete de simulación de subprocesos múltiples

[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]

Paquete de simulación de subprocesos múltiples de Laravel

Paquete — ¿Listos para el ejercicio de hoy? Consiste en descargar varios archivos a la vez en un proyecto Laravel.

¡Así es! Y lo haremos con Laravel + Javascript para hacer esta operación. Lo encontré útil para hacerlo utilizable en otros proyectos.

📌 Este paquete funciona solo en Linux (por ahora).

[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]


Comencemos con la instalación del paquete.

Instale nodejs en su servidor.

sudo apt-get install nodejs

Requiere este pack con Composer usando el siguiente comando:

composer require g4t/laravel-multithread

Uso

use g4t\Multithread\Run;

public function index()
{
    if(Run::check()) {        #### This is an example of query
        $files = $this->query();        #### pass query response to `multithread` function
        Run::multithread($files); 
    } else {        #### this similar to work `Request $request`
        $data = Run::request();
                                
        #### The same data that comes from the query
        #### here what we want to do in multithreaded
        $path = public_path()."/files//".$data['name'];
        shell_exec("wget {$data['url']} -O {$path}");
    }
}


public function query()
{
  $files = [
    [
      "id" => 1,
      "name" => "file1.zip",
      "url" => "https://speed.hetzner.de/100MB.bin"
    ],
    [
      "id" => 2,
      "name" => "file2.zip",
      "url" => "https://speed.hetzner.de/100MB.bin"
    ],
    [
      "id" => 3,
      "name" => "file3.zip",
      "url" => "https://speed.hetzner.de/100MB.bin"
    ]
  ];
  return $files;
}

Haga clic AQUÍ para ver este paquete en Github.

[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]

Diego Pacheco

Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

Recent Post

[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]