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’.