Annoncée le 29 novembre par Deno Land, les développeurs du runtime Deno TypeScript/JavaScript, la fonctionnalité Cron facilite la création de tâches planifiées. La fonction Deno.cron(), disponible derrière le drapeau --unstable dans Deno 1.38, prend trois paramètres : le nom du travail programmé, le calendrier et le handler qui désigne la fonction exécutée sur le calendrier fourni. La planification de Cron utilise le format Unix cron et le fuseau horaire UTC. Les gestionnaires de Cron peuvent exécuter diverses actions, par exemple, la mise à jour de l'état dans KV, l'envoi d'un ping à un site web, l'envoi d'un courriel, le lancement d'une sauvegarde de la base de données ou encore l'appel d'une API à intervalles réguliers.

Contrairement aux tâches cron sous Unix et Linux, les exécutions de Deno Cron ne se chevauchent pas. De sorte que, si un opérateur planifie une tâche toutes les 10 minutes, mais que celle-ci prend 30 minutes, la fonction sautera automatiquement la prochaine exécution planifiée jusqu'à ce que la tâche soit terminée. « Le chevauchement des tâches cron peut générer des problèmes involontaires et nécessiter une logique supplémentaire pour les éviter », a déclaré Deno Land. Ce à quoi remédie Deno Cron. L'éditeur travaille également à la prise en charge d'une API facile à prendre en main pour JavaScript afin de spécifier le calendrier cron.

Un objectif de simplifier le développement web

Pour justifier la raison d'être de Deno Cron, l'éditeur a déclaré que la construction pour le web est devenue de plus en plus complexe. Les logiciels modernes utilisent des infrastructures cloud, dissèquent le code standard et gèrent des configurations complexes. Mais les développeurs veulent simplement se concentrer sur la logique commerciale. Deno Land fait en sorte de simplifier le développement web en supprimant la configuration et le code standard inutile. « Comme KV et Deno Queues, que l’on peut ajouter à une application avec quelques lignes de code, Cron peut simplifier le développement web », a déclaré l'entreprise.

Sur la plateforme JavaScript serverless Deploy, Deno.cron() est géré automatiquement, ce qui permet aux utilisateurs d'exécuter des tâches cron en environnement web aussi bien que serverless ou même des requêtes cohérentes. Chaque fois qu'un projet est déployé, Deploy détecte automatiquement les tâches cron et les évalue. Quand le moment est venu pour un handler de s'exécuter, Deploy lance automatiquement un isolat à la demande pour l'exécuter. Un onglet Cron a été ajouté au tableau de bord de Deploy pour montrer les tâches cron actives dans un projet.