0

J'ai mis en place un serveur Elastic Beanstalk, niveau de travailleur. Il a une cron.yaml d'exécuter une tâche toutes les heures, comme ceci:Comment simuler l'envoi d'une tâche périodique sur le serveur Elastic Beanstalk?

version: 1 
cron: 
- name: "broadcast-users" 
    url: "/broadcast" 
    schedule: "0 * * * *" 

Je sais que cela fonctionne par l'intermédiaire SQS envoyant un message à la file d'attente des travailleurs qui est ensuite repris par cette route - mais je n » Je ne sais pas à quoi ressemble ce message. Je voudrais pouvoir tester le travail de cron facilement, sans attendre l'heure prévue à venir.

Quelqu'un à quoi ressemblerait le message de SQS pour lancer ce travail cron? (Ou comment je peux inspecter le contenu des messages envoyés à SQS?)

Merci!

Répondre

0

Vous devriez pouvoir voir le contenu du message en utilisant la console SQS. Le message finira probablement dans la file d'attente des lettres mortes.

Cela étant dit, le contenu du message devrait ressembler à ceci:

{ "taskurl": "broadcast", "taskname": "broadcast-users" } 

Vous pouvez également utiliser la console SQS envoyer manuellement un message:

  • Sélectionnez la file d'attente appropriée.
  • Sélectionnez "Envoyer un message" dans la liste déroulante "Actions de file d'attente".
  • Entrez un corps de message JSON (tel que { "taskurl" : "broadcast", "taskname" : "broadcast-users" }) et cliquez sur "Envoyer un message".

Dans votre contrôleur, vous pouvez consulter l'en-tête X-Aws-Sqsd-Taskname pour déterminer quelle tâche a été appelée.

+0

Mon opérateur traite les messages SQS sur une route/worker et reçoit les tâches cron sur la route/broadcast. Lorsque j'ai essayé d'envoyer ce message, il a été reçu par la route/worker. Y a-t-il un attribut dans le JSON qui l'enverrait à/broadcast à la place? (Peut-être que je me trompe dans le fonctionnement du traitement cron, peut-être que SQS ne le déclenche pas du tout?) –

+0

Si vous envoyez un message manuellement via la console SQS, il sera envoyé à n'importe quel point de terminaison configuré dans ElasticBeanstalk. Les tâches définies dans 'cron.yaml' peuvent être envoyées à des points de terminaison arbitraires via le paramètre' url'. – Brian