Tema: scheduling
-
Timers do systemd como substituto do cron: OnCalendar, Persistent= e RandomizedDelaySec
Uma unidade .timer do systemd combinada com um .service do tipo oneshot pode substituir uma entrada do crontab e ainda executa tarefas perdidas após períodos de inatividade e distribui a carga com atrasos aleatórios em vários hosts. Esta metodologia cria, valida e ativa esse par de unidades e explica o que Persistent= e RandomizedDelaySec= realmente fazem.
-
Dialetos de expressões cron: campos, segundos e a armadilha entre dia do mês e dia da semana
Vixie cron, Quartz, Kubernetes CronJob, GitHub Actions e AWS EventBridge chamam a sua string de agendamento de "expressão cron", mas divergem quanto ao número de campos, à existência de segundos ou ano e à forma de tratar dia do mês e dia da semana: se são combinados com OR ou se nunca podem ser definidos os dois ao mesmo tempo.
-
Música interativa: agende as transições no relógio de áudio
Converta limites musicais em tempos futuros do relógio de áudio, prepare os recursos antes dos prazos e distinga a renderização com precisão de amostra da latência total de reprodução.
-
Como impedir execuções simultâneas de um script administrativo: flock, lockf e mutex nomeado no Windows
Um script administrativo agendado ou disparado por um agente, que pode ser iniciado de novo antes de a execução anterior terminar, precisa de um lock e não de esperar que isso nunca aconteça. O flock(1) no Linux e o lockf(1) no FreeBSD associam um lock consultivo (advisory) do kernel a um processo em execução, por isso ele não fica obsoleto como um arquivo PID esquecido; no Windows, o equivalente é um System.Threading.Mutex nomeado.
-
Tarefas agendadas comparadas: cron, systemd timers, launchd, Task Scheduler e cron/at do AIX
Cada agendador responde de forma diferente a uma pergunta: o que acontece com uma tarefa cujo horário passou enquanto a máquina estava desligada ou em suspensão? A comparação entre cron, systemd timers, as chaves de calendário do launchd e o Task Scheduler do Windows mostra que só o launchd recupera a execução após a suspensão por padrão; os demais só o fazem se forem configurados para isso.
-
Estados no Bevy: coordenar transições pendentes, trabalho de entrada e limpeza
Distinga o estado atual de uma transição solicitada, resolva requisições concorrentes de forma deliberada e faça a entrada e a saída de um estado serem responsáveis pelos objetos temporários que criam.
-
Usar um token bucket para chamadas de ferramentas
Implemente rajadas limitadas com uma equação explícita de reposição de tokens, consumo atômico e um limite separado para requisições em andamento.
Legível por máquina: JSON