Devo desativar WP_CRON e, em vez disso, desencadear wp-cron.php do servidor a cada poucos minutos? Wordpress Pergunte
Função aberta e fechada Execute uma function quando toda a página for exibida Esta Solução para Caches vs Cookies vai me levar em problemas? Erro de localização WordPress dentro do valor de retorno Editor de postagem não guarda mídia incorporada Como tornar minha imagem doméstica clara dentro do tema Edin? Notificações por email de novas postagens para usuários – sugestões Obter título da imagem da publicação está anexado Ao usar o plugin de Campos Simples, como extrai as informações do database para exibir em uma página? acessando meus mu-plugins dentro de um arquivo de modelo Obtenha todas as categorias e postagens nessas categorias Como remover o botão de personalização do tema da página de opções de painel e temas? Como posso evitar que o meu formulário personalizado redirecione para wp-login? Acesse post meta na function future_to_publish Como configurar a paginação para trabalhar com '/ page /'?
Parece que o WordPress desnecessariamente triggers o WP CRON em cada carga de página. Estou pensando, em vez de executá-lo em todas as visitas, por que não apenas agendá-lo para ser executado a cada 5 minutos via servidor? Eu poderia simplesmente desencadear wp-cron.php a cada cinco minutos e alcançar o resultado desejado?
Existe alguma desvantagem para isso?
Solutions Collecting From Web of "Devo desativar WP_CRON e, em vez disso, desencadear wp-cron.php do servidor a cada poucos minutos?"
Não há desvantagem para executar o WP CRON usando os trabalhos cron do servidor. Na verdade, esta é a prática recomendada.
De acordo com o documento oficial de desenvolvimento do WordPress Plugin :
O WP-Cron não é executado continuamente, o que pode ser um problema se houver tarefas críticas que devem ser executadas no tempo. Existe uma solução fácil para isso. Basta configurar o agendador de tarefas do seu sistema para executar nos intervalos desejados (ou no tempo específico necessário).
Para fazer isso, você precisa primeiro desabilitar o comportamento cron padrão em wp-config.php :
Em seguida, programe o wp-cron.php do seu servidor. Para Linux, isso significa:
No entanto, em vez de executá-lo na linha de comando (CLI), execute-o como uma solicitação HTTP. Para isso você pode usar o wget :
O WordPress carrega todos os arquivos principais necessários, Plugins etc. no wp-cron.php com o seguinte CÓDIGO:
Portanto, não se preocupe com o WordPress, não carregando resources importantes.
Existem algumas desvantagens: Em primeiro lugar, o uso do wp-cron.php vem como uma chamada cli, portanto, coisas como as variables ​​$ _SERVER não estão definidas. As pessoas superam esta limitação usando um pedido de curl para wp-cron.php em seu lugar.
Em segundo lugar, porque o próprio WP não está carregado com wp-cron.php; Se você usar um plugin SMTP mailer, isso não será carregado ao ligar o wp-cron. Mais uma vez, usar uma chamada curl substitui esse problema. Curl parece ser o método mais utilizado.
Contudo; Eu prefiro usar o wp-cli depois de definir as configurações de email no postfix e (para nginx) php-fpm config corretamente e definir um crontab, como
*/5 * * * * wp cron event list --skip-plugins --skip-themes --path="/var/www/vhosts/example.com/httpdocs/wp" --fields=hook,next_run_relative --format=csv | awk -F, '$2=="now" {print $1}' | xargs -r wp --path="/var/www/vhosts/example.com/httpdocs/wp" cron event run $1
(Liste todos os crones com campos específicos no formato csv – o gancho sendo o nome do cron, o próximo parente relativo é o tempo. Descarte os que mostram 'agora' como a próxima execução (os que são devidos agora) usando AWK, passe essa lista para xargs para Ligue para wp cron event run $HOOK em cada cron.) Usando wp-cli carrega o WordPress corretamente (eu escolho saltar os plugins ao listar os crons, como erros de código e alertas php estragando a saída com script, mas não para ignorá-los quando executados o cron com xargs, como o cron pode precisar dos plugins sendo carregados)