Já era possível agendar a execução de tarefas (scheduler jobs) no Titan por meio a chamadas a scripts (‘titan.php?target=script’), entretanto, por organização e segurança, foi implementado um procedimento oficial para a execução periódica de scripts.

O primeiro passo é configurar uma hash de segurança no ‘titan.xml’ adicionando uma tag no seguinte formato:

<schedule hash="cadeia_de_caracteres_aleatória" />

Gere uma cadeia de caracteres aleatória e substitua no local indicado.

Ao criar um novo componente o desenvolvedor pode agora criar uma pasta mandatória denominada ‘job’. Dentro dela é possível colocar os scripts que executarão periódicamente. É recomendado que o nome do script remeta à sua frequência de execução, por exemplo: ‘daily.php’, ‘weekly.php’, ‘hourly.php’, etc.

Agora, deve-se colocar a chamada aos jobs em algum “time-based job scheduler”, como o CRON nos sistemas unix-like. Por exemplo, a linha do ‘crontab’ com a chamada a um job ‘daily’ em uma instância hospedada em “https://www.minha-instancia.com/” em um servidor FreeBSD ficaria:

0  3  *  *  *  root	/usr/local/bin/wget --no-check-certificate "https://www.minha-instancia.com/titan.php?target=schedule&hash=cadeia_de_caracteres_aleatória=daily" -O /dev/null -o /dev/null

Esta linha nada mais faz do que utilizar o wget para abrir a página que executa o job. O parâmetro ‘–no-check-certificate’ é passado apenas por se tratar de uma requição ‘https’. Nesta configuração o job será executado todo dia às 3:00h da manhã.

Reparem que toda a saída é enviada para “/dev/null” pois ela é irrelevante. Os erros e saídas são gavados em “[cache]/job/[nome do job].yyyymmdd”. Assim, para que seja gravado no LOG qualquer saída, basta imprimí-la com ‘echo’. É necessário passar na query string a mesma hash configurada no ‘titan.xml’.