{"id":4949,"date":"2023-02-06T10:33:23","date_gmt":"2023-02-06T13:33:23","guid":{"rendered":"https:\/\/dev.superchargerd7.com\/?p=4949"},"modified":"2023-02-06T12:30:16","modified_gmt":"2023-02-06T15:30:16","slug":"runners-desktop-runners-background","status":"publish","type":"post","link":"https:\/\/dev.superchargerd7.com\/pt-br\/2023\/02\/06\/runners-desktop-runners-background\/","title":{"rendered":"Entenda as diferen\u00e7as entre Runners Desktop e Runners Background no Python RPA"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Existem esses dois tipos de <em>runners <\/em>para se considerar: Runners Desktop (anteriormente chamados de Runners RPA) e Runners Background. E dentro do nosso contexto de Python RPA, podemos dizer que <em>runner <\/em>\u00e9 quem gerencia a execu\u00e7\u00e3o do processo automatizado, preparando o ambiente de execu\u00e7\u00e3o e monitorando as tarefas realizadas. Entendendo este conceito, vamos agora entender cada um desses tipos de <em>runners<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os Runners Desktop s\u00e3o utilizados para automatizar tarefas que normalmente seriam executadas por seres humanos do in\u00edcio ao fim e que requerem GUI (Graphical User Interface), ou seja, precisa de uma intera\u00e7\u00e3o com uma ou mais interfaces gr\u00e1ficas, por exemplo: preenchimento de formul\u00e1rios, intera\u00e7\u00e3o com sistemas como SAP, TOTVS, entre outros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inclusive, um ponto importante de se entender \u00e9 que, como o Runner Desktop \u00e9 utilizado para automa\u00e7\u00f5es a serem feitas no computador da pessoa usu\u00e1ria, s\u00f3 podemos executar um de cada vez, ou ter\u00edamos conflitos nos processos da m\u00e1quina a qual est\u00e1 sendo utilizada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os Runners Background s\u00e3o utilizados para construir qualquer tipo de automa\u00e7\u00e3o que n\u00e3o exija necessariamente interface gr\u00e1fica. Algumas aplica\u00e7\u00f5es de exemplo s\u00e3o: automa\u00e7\u00f5es WEB em modo headless, crawlers, processamento de dados, gerar relat\u00f3rios, fazer algum tipo de integra\u00e7\u00e3o entre sistemas diferentes atrav\u00e9s de APIs, entre outras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O destaque, neste caso, \u00e9 que essas automa\u00e7\u00f5es s\u00e3o executadas em segundo plano, sem a necessidade de intera\u00e7\u00e3o humana e com grande potencial de paralelismo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para habilitar ou desabilitar a execu\u00e7\u00e3o em segundo plano no seu projeto, basta voc\u00ea configurar a op\u00e7\u00e3o de headless conforme as seguintes linhas de c\u00f3digo no in\u00edcio do seu projeto:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para projetos Java:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void action(BotExecution botExecution) {\n    try {\n        \/\/ Configure se deve ou n\u00e3o rodar no modo headless\n        <strong>setHeadless<\/strong>(false);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para projetos Python:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Bot(WebBot):\n    def action(self, execution=None):\n        # Configure se deve ou n\u00e3o rodar no modo headless\n        self.<strong>headless<\/strong> = False<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea tamb\u00e9m pode encontrar essas orienta\u00e7\u00f5es em nossa <a href=\"https:\/\/documentation.botcity.dev\/pt\/frameworks\/web\/configuration\/\">documenta\u00e7\u00e3o<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos analisar um resumo das caracter\u00edsticas:<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter\"><table><tbody><tr><td><strong>Tipos de Runners<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Requer GUI<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Execu\u00e7\u00e3o pode ser feita em segundo plano<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Permite paralelismo<\/strong><\/td><\/tr><tr><td><strong>Runners Desktop<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">?<\/td><td class=\"has-text-align-center\" data-align=\"center\">?<\/td><td class=\"has-text-align-center\" data-align=\"center\">?<\/td><\/tr><tr><td><strong>Runners Background<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">?<\/td><td class=\"has-text-align-center\" data-align=\"center\">?<\/td><td class=\"has-text-align-center\" data-align=\"center\">?<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">E ent\u00e3o, j\u00e1 escolheu qual formato funciona melhor para a sua automa\u00e7\u00e3o Python RPA?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Existem esses dois tipos de runners para se considerar: Runners Desktop (anteriormente chamados de Runners RPA) e Runners Background. E dentro do nosso contexto de Python RPA, podemos dizer que runner \u00e9 quem gerencia a execu\u00e7\u00e3o do processo automatizado, preparando o ambiente de execu\u00e7\u00e3o e monitorando as tarefas realizadas. Entendendo este conceito, vamos agora entender [&hellip;]<\/p>\n","protected":false},"author":214060721,"featured_media":4967,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[773027],"tags":[773055,773062,773066,773061,773060],"class_list":["post-4949","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automacao-python","tag-python-rpa","tag-runner-background","tag-runner-desktop","tag-runner-rpa","tag-runners"],"_links":{"self":[{"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/posts\/4949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/users\/214060721"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/comments?post=4949"}],"version-history":[{"count":6,"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/posts\/4949\/revisions"}],"predecessor-version":[{"id":4969,"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/posts\/4949\/revisions\/4969"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/media\/4967"}],"wp:attachment":[{"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/media?parent=4949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/categories?post=4949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.superchargerd7.com\/pt-br\/wp-json\/wp\/v2\/tags?post=4949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}