Coisas que aprendi ao importar 50 mil artigos para o WordPress

Nota do Editor: E se, um dia, um conhecido vos pedisse para lidar com a importação, todos os dias, de 50 mil entidades encaminhando-as para artigos numa instalação WordPress?  O mais certo é que tivessem de coçar a cabeça em busca de uma solução. Foi o que aconteceu a Luís Rodrigues. As primeiras tentativas não foram bem sucedidas. Até que… Mas o melhor é ser o próprio Luís Rodrigues a contar a história.

Recentemente, tive a oportunidade de desenvolver um plugin para um cliente que, todos os dias, obtém um ficheiro com cerca de 50 mil entidades, e insere-as ou actualiza-as como artigos, numa instalação WordPress.

A tarefa seria relativamente trivial para um baixo número de entidades, mas como tudo o que é desproporcionado em software, as coisas depressa se tornam estranhas. De timeouts a erros por falta de memória, há muito a esperar de um desafio destes.

Eis algumas das coisas que aprendi.

A tempo e horas

O WP Cron é o mecanismo de agendamento do WordPress, e funciona de forma semelhante ao crontab do Unix. O CMS agenda tarefas pontuais ou recorrentes (como a publicação de artigos) e na data prevista (na melhor das hipóteses), essa tarefa é executada.

Digo “na melhor das hipóteses” porque a execução de tarefas não é um mecanismo independente, sendo despoletada pelas visitas ao site. Ou seja, se existe uma tarefa agendada para as 15:30, mas ninguém visita o site até às 17:59, essa tarefa não é invocada até às 17:59.

O desafio que tinha pela frente não era a pontualidade da operação, mas sim o facto dos pedidos do WP Cron estarem à mercê dos timeouts do servidor web. Por muito que optimizasse a operação, não seria fácil pôr o PHP a importar 50 mil posts em menos dos 60 segundos configurados.

Continuar a ler “Coisas que aprendi ao importar 50 mil artigos para o WordPress”

Adeus “Posts”, descansem em paz

A versão 3.2 aproxima-se e com ela uma série de novidades no painel da sua instalação de WordPress.  Além de tudo o mais, e pela primeira vez em muito tempo, esta comunidade decidiu rever a consistência e coerência da tradução, o que vai significar um impacto visível e imediato na versão portuguesa do WordPress. A mais importante é, sem dúvida, a morte de “posts” e de “postar”. Além de, subjectivamente, nunca falhar de me lembrar postas de pescada com batata cozida, o facto é que o termo não faz parte da nossa língua. Assim, um post é agora um artigo. … Continuar a ler Adeus “Posts”, descansem em paz