Pergunta

Eu sou totalmente novo para o objecto de trabalhos do cron então eu não tenho idéia por onde começar a aprender sobre eles; quando, porquê, ou como usá-los com o meu aplicativo Zend Framework, ou PHP em geral.

Alguém pode explicar o processo, com um exemplo, ou recomendar alguns bons recursos para começar?

Foi útil?

Solução

empregos Cron é um mecanismo para automatizar tarefas no sistema operacional Linux. E tem muito pouco a ver witn Zend Framework. O quadro pode ajudar a desenvolver uma tarefa cron avançado em php embora. Mas, em seguida, você terá que configurar o seu trabalho cron no shell.

pesquisando para "como configurar cron job", revelou este link no topo:

http://www.adminschoice.com/docs/crontab.htm

Eu tenho certeza que este artigo irá ajudá-lo.

P.S.

Como um comando para executar você deve colocar algo como:

/usr/local/bin/php -f <path_to_your_php_script>

onde o primeiro caminho é o caminho completo para o php cli executável, que pode diferir em sua máquina. Você pode certificar-se emitindo este comando:

which php

Boa sorte com tarefas agendadas;)

Outras dicas

Como o Zend Framework é uma coleção de componentes de alguma forma fracamente acoplados você pode usar os componentes que você gosta em cada script PHP incluindo scripts de CLI. Você tem que ter certeza, porém, que o PHP pode encontrar as classes do Zend Framework relevantes para que você tem que adicionar o caminho da biblioteca Zend Framework para o seu include_path. Em seguida, você pode configurar o Zend_Loader_Autoloader auotocarregáveis ??usando (ZF> = 1,8) ou Zend_Loader (ZF <1,8) para tornar a vida mais fácil. Agora, você deve ter acesso a todos os componentes do Zend Framework que você pode usar à vontade.

Como qualquer outro programa ou script esse script PHP pode ser usado em um trabalho cron naturalmente. Só mais uma coisa a notar é que você terá que se certificar de que o usuário executando suas tarefas cron tem acesso de leitura para o caminho da biblioteca Zend Framework outra forma PHP não consegue ler os arquivos do Zend Framework.

Se você é questão foi alvo sobre o uso do componente MVC em scripts CLI, devo admitir que eu não tenho nenhuma experiência com isso. Eu poderia supor que um esforço não desprezível deve ser feito para implementar request- apropriado, resposta-, distpachter- e via-classes.

EDIT:

Por favor, veja este artigo para obter mais informações.

Talvez um exemplo da vida real ajudaria. Há alguns anos, eu trabalhei em um projeto de calendário de eventos usando o Zend Framework. Neste calendário, um usuário poderia criar um evento e anexar 1 ou mais datas para o evento. Naturalmente, eu implementei isso como uma relação muitos-para-um juntar-se em meu banco de dados, mas isso significava que, a fim de anexar uma data, o evento teve a existir em primeiro lugar. No entanto eu queria permitir aos usuários adicionar datas enquanto que estavam criando o evento, não após , eles criaram um evento. Em outras palavras, eu queria que o usuário editar todos os aspectos de um evento ao mesmo tempo, e apresentar apenas quando clicado "Salvar".

Eu resolvi o problema, inserindo um novo recorde de eventos vazio no banco de dados quando o usuário começa a criar um registro de evento. Este registro vazio é preenchido e salvo quando o usuário clica em "Salvar", ou é excluído quando o usuário clica em "Cancelar". O problema ocorreu quando os usuários navegaram afastado sem clicar em "cancelar", eo registro de eventos vazio foi deixado no banco de dados. Eventualmente, o banco de dados iria encher-se com esses eventos vazios sem sentido, e as coisas podem ficar feias.

Eu escrevi uma função chamada "manutenção ()", que, entre outras coisas, apagados todos os registros que não foram salvas com mais de 24 horas. Eu configurar uma tarefa cron que corria todas as noites e executado um script php de linha de comando que a manutenção RAN ().

Outras coisas que você pode usar um trabalho cron para:

  • Enviar um lote de e-mails para novos usuários. (A cada 5 minutos?)
  • Atualização estatísticas do usuário (a cada hora?)
  • Executar operações intensivo de recursos quando os servidores não são bateu com o tráfego (Toda noite à meia-noite, ou uma vez por semana nas noites de domingo?)
  • Qualquer coisa outro evento que não ocorre em resposta a uma solicitação do usuário (o que Jeff chama de "fora da banda").

Você também pode estar interessado em como armazenar tarefas agendadas com ZF

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top