Je suis actuellement en train de concevoir une application web qui permettra aux utilisateurs de programmer des tâches qui seront exécutées sur une API HTTP (pour leur compte). Les tâches peuvent être récurrentes et la résolution temporelle minimale pouvant être utilisée pour la planification sera d'une minute. En raison de la nature des tâches, je pense qu'il est logique de les exécuter de manière asynchrone. Cependant, comment devrait ressembler l'architecture de cette partie?Architecture d'application Web - File d'attente de travaux/tâches nécessaire?
J'ai pensé utiliser une file d'attente de tâches pour créer des tâches par l'application web et les laisser être exécutées par un worker. Dans ce cas, j'ai plusieurs questions:
- Comment gérer les tâches récurrentes?
- Comment sauvegarder facilement les résultats des tâches?
- Est-il facile de rendre la file d'attente "persistante"?
- Les travailleurs doivent-ils interagir directement avec une base de données?
- Devrais-je mettre en file d'attente les tâches récurrentes manuellement?
Que pourrais-je envisager d'autre? Puisque je suppose que je ne suis pas le seul à penser à ce type d'architecture d'application web, y a-t-il des «meilleures pratiques»? Une file d'attente de tâches est-elle le chemin à parcourir?
Ceci est [pertinent] (http://stackoverflow.com/questions/5636051/cronjobs-in-node-js/5636298#5636298). Il montre comment implémenter les futures tâches dans 'node.js'. Changez simplement l'exécution des travaux en envoyant une requête HTTP. – Raynos