Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Vinícius Lourenço WordCamp São Paulo 2017 02/12/2017
Automatizando tarefas no
WordPress utilizando suas
funções nativas de...
Vinícius Lourenço
Desenvolvedor web desde 2009,
trabalhando com WordPress desde 2013 e
exclusivamente com a plataforma des...
O que é WP-Cron?
WP-Cron
Em poucas palavras:
Sistema nativo do WordPress para agendamento de tarefas.
Um ‘hook’ customizado é agendado para...
Quando usar?
Em casos de automatização de tarefas internas:
- Publicação de um post;
- Envio de e-mails;
- Exclusão de tra...
Quando usar?
Em casos de automatização de tarefas internas:
- Checagem de status de pedidos em massa;
- Extração de qualqu...
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...
Métodos principais:
wp_schedule_single_event( int $timestamp, string $hook,
array $args = array() );
Utilizar time(), o re...
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_schedul...
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 resul...
Como resolver?
Resolvendo:
- Adicionar define('DISABLE_WP_CRON', 'true'); no arquivo wp-config.php
- Realizar a requisição via crontab no...
Cuidados
- Utilizando 'DISABLE_WP_CRON' você reduz o impacto do
carregamento do site pois evita chamada ao
wp-cron.php;
- Com o mod...
Vinícius Lourenço WordCamp São Paulo 2017 02/12/2017
Muito obrigado!
https://blog.vilourenco.com.br
Twitter: @vilourenco |...
Palestra WordCamp São Paulo 2017
Palestra WordCamp São Paulo 2017
Palestra WordCamp São Paulo 2017
Palestra WordCamp São Paulo 2017
Palestra WordCamp São Paulo 2017
Palestra WordCamp São Paulo 2017
Nächste SlideShare
Wird geladen in …5
×

Palestra WordCamp São Paulo 2017

134 Aufrufe

Veröffentlicht am

Slides da minha palestra no WordCamp São Paulo 2017 no dia 02/12 na Faculdade Impacta.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Palestra WordCamp São Paulo 2017

  1. 1. Vinícius Lourenço WordCamp São Paulo 2017 02/12/2017 Automatizando tarefas no WordPress utilizando suas funções nativas de cron jobs.
  2. 2. 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.
  3. 3. O que é WP-Cron?
  4. 4. 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.
  5. 5. 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;
  6. 6. 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;
  7. 7. Métodos principais:
  8. 8. Métodos principais: wp_next_scheduled(); wp_schedule_single_event(); wp_schedule_event();
  9. 9. Métodos principais: wp_next_scheduled( string $hook, array $args = array() );
  10. 10. 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
  11. 11. 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.
  12. 12. Fluxo básico (Agendamento recorrente)
  13. 13. Tarefa sendo agendada a cada hora após a ativação do plugin.
  14. 14. Fluxo básico (Agendamento pontual)
  15. 15. 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
  16. 16. Verificando tarefas agendadas
  17. 17. Atenção! Casos não recomendáveis no formato padrão.
  18. 18. 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).
  19. 19. Como resolver?
  20. 20. 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
  21. 21. Cuidados
  22. 22. - 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.
  23. 23. 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?

×