{"id":27239,"date":"2021-05-11T16:58:00","date_gmt":"2021-05-11T13:58:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27239"},"modified":"2021-10-18T04:15:16","modified_gmt":"2021-10-18T01:15:16","slug":"usando-cron-schedule-no-laravel-para-automatizar-tarefas","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/usando-cron-schedule-no-laravel-para-automatizar-tarefas\/","title":{"rendered":"Usando Cron Schedule no Laravel para automatizar tarefas"},"content":{"rendered":"<p>O cron job \u00e9 \u00fatil para automatizar nossa tarefa no hor\u00e1rio especificado em intervalos regulares. O Laravel vem com um recurso para agendamento de tarefas que torna o agendamento do cron muito f\u00e1cil. No passado, precisamos adicionar uma entrada separada para cada cron job. No Laravel, s\u00f3 precisamos adicionar um comando e ele executa todos os nossos cron jobs automaticamente. N\u00e3o h\u00e1 necessidade de adicionar uma entrada separada para cada tarefa. Neste artigo, estudamos como usar o cron schedule no Laravel, o que nos ajuda a automatizar nossas tarefas.<\/p>\n<h3>Por que precisamos executar o Cron?<\/h3>\n<p>Existem v\u00e1rios exemplos que podemos citar onde precisamos executar um cron. Voc\u00ea pode administrar uma loja online e deseja enviar ofertas promocionais aos seus usu\u00e1rios. Ou voc\u00ea tem um site de associa\u00e7\u00e3o e precisa enviar o e-mail de lembrete aos usu\u00e1rios sobre o per\u00edodo de renova\u00e7\u00e3o da assinatura. Estes s\u00e3o os dois exemplos em que podemos usar o cron. O que fazemos \u00e9 escrever um programa que possa realizar essa tarefa e definir um cron para ele. Seu servidor ir\u00e1 procurar o tempo especificado para o cron e quando esse tempo chegar, ele executar\u00e1 o programa automaticamente. N\u00e3o precisamos olhar para o rel\u00f3gio e executar o programa manualmente.<\/p>\n<p>Este processo facilita nossa vida. Podemos nos concentrar em nossas outras coisas importantes e investir tempo em algo s\u00e1bio.<\/p>\n<h3>Cron Schedule no Laravel<\/h3>\n<p>Para nosso artigo, vamos dar um exemplo do mundo real. Digamos que temos v\u00e1rios usu\u00e1rios em nosso banco de dados Laravel. A cada meia-noite, precisamos enviar um e-mail a todos os usu\u00e1rios descrevendo nossa nova oferta promocional. Fazendo isso, nossos usu\u00e1rios s\u00e3o notificados sobre novas ofertas e suas vendas podem receber mais aten\u00e7\u00e3o.<\/p>\n<p>Presumimos que voc\u00ea armazenou todas as informa\u00e7\u00f5es de seu usu\u00e1rio na tabela de &#8216;usu\u00e1rios&#8217;. Obteremos os e-mails dos usu\u00e1rios desta tabela e enviaremos um e-mail para eles. Claro, precisamos escrever um c\u00f3digo de uma forma que deve ser executado a cada meia-noite.<\/p>\n<p>Abra o <code>app\/Console\/Kernel.php<\/code>arquivo em seu editor e adicione o modelo do usu\u00e1rio e a fachada do Mail ao arquivo.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppConsole;\n\u00a0\nuse IlluminateConsoleSchedulingSchedule;\nuse IlluminateFoundationConsoleKernel as ConsoleKernel;\nuse AppUser; \/\/ User model\nuse Mail; \/\/ Mail Facade\n\u00a0\nclass Kernel extends ConsoleKernel\n{\n\u00a0\u00a0\u00a0\u00a0....<\/code><\/pre>\n<p><code>Kernal<\/code>classe tem um m\u00e9todo <code>schedule<\/code>onde temos que escrever um ou v\u00e1rios hor\u00e1rios. Como precisamos enviar um e-mail para nossos usu\u00e1rios, escrevemos o c\u00f3digo da seguinte maneira.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppConsole;\n\u00a0\nuse IlluminateConsoleSchedulingSchedule;\nuse IlluminateFoundationConsoleKernel as ConsoleKernel;\nuse AppUser;\nuse Mail;\n\u00a0\nclass Kernel extends ConsoleKernel\n{\n\u00a0\u00a0\u00a0\u00a0....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Define the application's command schedule.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateConsoleSchedulingSchedule\u00a0 $schedule\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0protected function schedule(Schedule $schedule)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$schedule-&gt;call(function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$arr_users = User::all();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(count($arr_users) &gt; 0) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0foreach ($arr_users as $user) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$name = $user-&gt;name;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$email = $user-&gt;email;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$data = array(\"name\" =&gt; $name, \"body\" =&gt; \"This is our new promotional offer\");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Mail::send('emails.mail', $data, function($message) use ($name, $email) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$message-&gt;to($email, $name)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;subject('New Offer Launched');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$message-&gt;from('admin@artisansweb.net', 'Artisans Web');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})-&gt;daily();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ tou can add more schedules here\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0....<\/code><\/pre>\n<p>No c\u00f3digo acima, pegamos os usu\u00e1rios do banco de dados e enviamos um e-mail usando o m\u00e9todo send da fachada do Mail. Aqui, precisamos criar <code>mail.blade.php<\/code>arquivos no <code>resources\/views\/emails<\/code>diret\u00f3rio.<\/p>\n<p><strong>mail.blade.php<\/strong><\/p>\n<pre><code>Hi &lt;strong&gt;{{ $name }}&lt;\/strong&gt;,\n\u00a0\n&lt;p&gt;{{ $body }}&lt;\/p&gt;<\/code><\/pre>\n<p>Como nossa tarefa \u00e9 enviar um e-mail \u00e0 meia-noite utilizamos o <code>daily()<\/code>m\u00e9todo. O Laravel oferece diferentes op\u00e7\u00f5es de frequ\u00eancia de agendamento que voc\u00ea obteria na p\u00e1gina de <a href=\"https:\/\/laravel.com\/docs\/5.7\/scheduling#schedule-frequency-options\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documenta\u00e7\u00e3o<\/a>.<\/p>\n<h3>Adicionar entrada Cron ao seu servidor<\/h3>\n<p>Finalmente, para definir este cron job em um servidor, voc\u00ea deve adicionar a entrada cron abaixo ao seu servidor.<\/p>\n<pre><code>* * * * * cd \/path-to-your-project &amp;&amp; php artisan schedule:run &gt;&gt; \/dev\/null 2&gt;&amp;1<\/code><\/pre>\n<p>Certifique-se de ter definido o caminho do seu projeto corretamente. Este Cron ir\u00e1 chamar o agendador de comandos do Laravel a cada minuto. Ele executa automaticamente o cronograma: execute o comando e avalie suas tarefas agendadas e execute as tarefas vencidas.<\/p>\n<p>Esperamos que voc\u00ea tenha aprendido a usar a programa\u00e7\u00e3o cron no Laravel e automatizar suas tarefas. Gostar\u00edamos de ouvir sua opini\u00e3o na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/enviando-e-mail-via-servidor-smtp-do-gmail-no-laravel\/\" title=\"Enviando e-mail via servidor SMTP do Gmail no Laravel\">Enviando e-mail via servidor SMTP do Gmail no Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-usar-eventos-e-ouvintes-do-laravel-em-seu-aplicativo\/\" title=\"Como usar eventos e ouvintes do Laravel em seu aplicativo\">Como usar eventos e ouvintes do Laravel em seu aplicativo<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-usar-o-laravel-passport-para-autenticacao-rest-api\/\" title=\"Como usar o Laravel Passport para autentica\u00e7\u00e3o REST API\">Como usar o Laravel Passport para autentica\u00e7\u00e3o REST API<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, estudamos como usar a cron scedule no Laravel para automatizar suas tarefas. Cron jobs s\u00e3o \u00fateis para tornar o processo autom\u00e1tico, o que nos economiza muito<\/p>\n","protected":false},"author":1,"featured_media":22224,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[502],"tags":[848],"class_list":["post-27239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27239"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27239\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/22224"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}