I need some sort of polling mechanism to check SQS every so often for new operations. Is cron the best way to do this? I was thinking of putting a PHP script in cron and poll every 5 minutes - is this reliable?
Isso deve ser bastante confiável, a menos que você precise de algo mais refinado.
I need to make sure one operation (message from SQS) is processed at a time. Some processing may take more than 5 minutes - how can I notify cron not to poll if operations are pending?
Faça seu programa checar a existência de algum arquivo de carimbo. Se existir, o programa chamado cron sairá sem fazer mais trabalho.
How can I run operations only when the CPU is idle? Does PHP make CPU data available?
Se você executar suas operações intensivas de CPU por meio da classe de agendamento IDLE usando chrt --idle command args
Note que isso
Finalmente, você pode usar o comando batch
para agendar tarefas a serem executadas quando a carga estiver abaixo de um determinado valor - francamente, não é muito dinâmico e não será retido depois de iniciado.