SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Vinícius Lourenço WordCamp São Paulo 2017 02/12/2017
Automatizando tarefas no
WordPress utilizando suas
funções nativas de cron jobs.
Vinícius Lourenço
Desenvolvedor web desde 2009,
trabalhando com WordPress desde 2013 e
exclusivamente com a plataforma desde
2015, prestando serviços a empresas
nacionais e internacionais pela WebVL
Desenvolvimento.
Coordenador do WordPress Meetup São
Carlos.
Em seu tempo livre, no mundo offline,
cultiva planta carnívoras.
O que é WP-Cron?
WP-Cron
Em poucas palavras:
Sistema nativo do WordPress para agendamento de tarefas.
Um ‘hook’ customizado é agendado para executar o(s) métodos a ele
atribuído.
Por padrão as tarefas são sempre verificadas/executadas por
requisição http via wp-cron.php sempre que o site é acessado.
Quando usar?
Em casos de automatização de tarefas internas:
- Publicação de um post;
- Envio de e-mails;
- Exclusão de transients expirados;
- Relatórios de compras ocorridas durante o dia;
Quando usar?
Em casos de automatização de tarefas internas:
- Checagem de status de pedidos em massa;
- Extração de qualquer tipo de informação e automatização;
Métodos principais:
Métodos principais:
wp_next_scheduled();
wp_schedule_single_event();
wp_schedule_event();
Métodos principais:
wp_next_scheduled( string $hook, array $args = array() );
Métodos principais:
wp_schedule_event( int $timestamp, string $recurrence,
string $hook, array $args = array() );
Utilizar time(), o retorno sempre será a timestamp GMT, utilizada no WP.
$recurrence = hourly, daily, twicedaily.
Verificar filtro ‘cron_schedules’, no método wp_get_schedules() para recorrências
personalizadas
Métodos principais:
wp_schedule_single_event( int $timestamp, string $hook,
array $args = array() );
Utilizar time(), o retorno sempre será a timestamp em
formato GMT, utilizada no WP.
Fluxo básico
(Agendamento recorrente)
Tarefa sendo agendada a cada hora após a ativação do plugin.
Fluxo básico
(Agendamento pontual)
Outras funções
wp_reschedule_event();
wp_unschedule_event();
wp_clear_scheduled_hook();
wp_get_schedules();
wp_get_schedule();
Verificar arquivo: /wp-cron.php
/wp-includes/cron.php
Verificando tarefas
agendadas
Atenção!
Casos não recomendáveis no formato padrão.
Método padrão não recomendável quando:
- Site tem poucos acessos;
- Se houver algum problema na requisição http pode resultar em tarefas não
sendo executadas completamente;
- Pode sobrecarregar o servidor caso o site tenha muitos acessos simultâneos
(em casos em que uma tarefa é realizada a cada acesso).
Como resolver?
Resolvendo:
- Adicionar define('DISABLE_WP_CRON', 'true'); no arquivo wp-config.php
- Realizar a requisição via crontab no servidor.
Sendo realizados a cada 5 minutos:
# echo "*/5 * * * * www-data wget -o /dev/null -O /dev/null http://seudominio.com/wp-cron.php" >
/etc/cron.d/wordpress
Cuidados
- Utilizando 'DISABLE_WP_CRON' você reduz o impacto do
carregamento do site pois evita chamada ao
wp-cron.php;
- Com o modo acima e chamando wp-cron via crontab
você também garante que a tarefa será executada;
- NÃO utilizar este método para requisição a jobs externos
ao WP.
Vinícius Lourenço WordCamp São Paulo 2017 02/12/2017
Muito obrigado!
https://blog.vilourenco.com.br
Twitter: @vilourenco | Facebook: fb.com/vilourenco
Email: vinicius.q.lourenco@gmail.com
Dúvidas?

Mais conteúdo relacionado

Mais procurados

Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesFabiano Weimar
 
Como estruturar seus testes com jasmine e karma
Como estruturar seus testes com jasmine e karmaComo estruturar seus testes com jasmine e karma
Como estruturar seus testes com jasmine e karmaEnrique Marques Junior
 
Turbolinks 5 + PWA (Progressive Web Apps)
Turbolinks 5 + PWA (Progressive Web Apps)Turbolinks 5 + PWA (Progressive Web Apps)
Turbolinks 5 + PWA (Progressive Web Apps)Rodrigo Serradura
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoArtur Felipe Sousa
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasDan Vitoriano
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Glauton Vieira
 
Como criar uma operação em lote (batch operations)
Como criar uma operação em lote (batch operations)Como criar uma operação em lote (batch operations)
Como criar uma operação em lote (batch operations)Helal Cabral
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Bruno Rodrigo S. Souza
 
Vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em ...
Vagrant + chef cookbooks   ambiente de desenvolvimento como o de produção em ...Vagrant + chef cookbooks   ambiente de desenvolvimento como o de produção em ...
Vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em ...Tiago Butzke
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScriptCarlos Santos
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaMatheus Fidelis
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 

Mais procurados (19)

Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websites
 
Como estruturar seus testes com jasmine e karma
Como estruturar seus testes com jasmine e karmaComo estruturar seus testes com jasmine e karma
Como estruturar seus testes com jasmine e karma
 
Turbolinks 5 + PWA (Progressive Web Apps)
Turbolinks 5 + PWA (Progressive Web Apps)Turbolinks 5 + PWA (Progressive Web Apps)
Turbolinks 5 + PWA (Progressive Web Apps)
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produção
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps Modernas
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!
 
Como criar uma operação em lote (batch operations)
Como criar uma operação em lote (batch operations)Como criar uma operação em lote (batch operations)
Como criar uma operação em lote (batch operations)
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
Introdução ao DotNetNuke
Introdução ao DotNetNukeIntrodução ao DotNetNuke
Introdução ao DotNetNuke
 
Ajax
AjaxAjax
Ajax
 
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
 
Node.js for Noobs
Node.js for NoobsNode.js for Noobs
Node.js for Noobs
 
8 principais desperdícios
8 principais desperdícios8 principais desperdícios
8 principais desperdícios
 
Vamos conversar sobre cache
Vamos conversar sobre cacheVamos conversar sobre cache
Vamos conversar sobre cache
 
Vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em ...
Vagrant + chef cookbooks   ambiente de desenvolvimento como o de produção em ...Vagrant + chef cookbooks   ambiente de desenvolvimento como o de produção em ...
Vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em ...
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 

Semelhante a Automatizando tarefas no WordPress com WP-Cron

Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressJulian Fernandes
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Tiago Hillebrandt
 
Quem tem medo do terminal?
Quem tem medo do terminal?Quem tem medo do terminal?
Quem tem medo do terminal?Rafael Funchal
 
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãoGerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãospirallab
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteHaste Design
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizadosThiago Rodrigues
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanElton Minetto
 
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Tiago Hillebrandt
 
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugarUtilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugarmeetupwordpressfln
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPressGuga Alves
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e SphinxElton Minetto
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...tdc-globalcode
 
Gestão de Conteúdos com Aplicações Instaladas em Servidores
Gestão de Conteúdos com Aplicações Instaladas em ServidoresGestão de Conteúdos com Aplicações Instaladas em Servidores
Gestão de Conteúdos com Aplicações Instaladas em ServidoresFabioMDias
 
Minicurso - Desenvolvimento de sites com WordPress
Minicurso - Desenvolvimento de sites com WordPressMinicurso - Desenvolvimento de sites com WordPress
Minicurso - Desenvolvimento de sites com WordPressJackson Meires
 
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Eduardo de Lucena Falcão
 
Slides NGINX - Sistemas Distribuídos
Slides NGINX - Sistemas DistribuídosSlides NGINX - Sistemas Distribuídos
Slides NGINX - Sistemas Distribuídosvinycesar
 
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Anyssa Ferreira
 

Semelhante a Automatizando tarefas no WordPress com WP-Cron (20)

Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPress
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
A busca pelo deploy continuo
A busca pelo deploy continuoA busca pelo deploy continuo
A busca pelo deploy continuo
 
Quem tem medo do terminal?
Quem tem medo do terminal?Quem tem medo do terminal?
Quem tem medo do terminal?
 
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãoGerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmente
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando Gearman
 
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
 
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugarUtilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPress
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
Gestão de Conteúdos com Aplicações Instaladas em Servidores
Gestão de Conteúdos com Aplicações Instaladas em ServidoresGestão de Conteúdos com Aplicações Instaladas em Servidores
Gestão de Conteúdos com Aplicações Instaladas em Servidores
 
Minicurso - Desenvolvimento de sites com WordPress
Minicurso - Desenvolvimento de sites com WordPressMinicurso - Desenvolvimento de sites com WordPress
Minicurso - Desenvolvimento de sites com WordPress
 
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
 
Slides NGINX - Sistemas Distribuídos
Slides NGINX - Sistemas DistribuídosSlides NGINX - Sistemas Distribuídos
Slides NGINX - Sistemas Distribuídos
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
 
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
 

Automatizando tarefas no WordPress com WP-Cron