2011-01-07 2 views
0

J'ai une table dans ma base de données avec une liste d'emails à envoyer, chacun à un moment précis (précision à la minute près).envoyer des e-mails retardés sur heroku

Je suis en heroku, et je ne veux pas dépenser quoi que ce soit en ce moment .. Y at-il un moyen de faire cela? La seule façon que je pensais était de créer un deamon/cron ailleurs et de le faire appeler une url privée chaque minute ... une autre idée? Tout moyen d'avoir un processus d'arrière-plan ou quelque chose qui peut gérer cela (sur Heroku et sans payer de supplément pour les addons ..)?

merci!

+0

Peut-être heroku est une mauvaise option pour vous. Je recommande d'obtenir une machine virtuelle peu coûteuse (5 $/mois). – cam

+0

Quel est le volume de courriels que vous envoyez? – JonLim

+0

Pas beaucoup de mails, mais je dois être précis quand ils sont envoyés. Il est donc probable qu'il n'y en aura pas plus que quelques uns en même temps, et très souvent aucun. Je sais heroku n'est pas idéal pour cela sans un travailleur mais je voulais l'essayer, j'ai déjà un compte sur railsplayground .. – luca

Répondre

3

L'addon cron gratuit d'Heroku ne fonctionne qu'une fois par jour, il n'est donc pas adapté. Leur addon cron payé ne fonctionne qu'une fois par heure, donc il ne convient pas non plus. Exécuter un démon/cron ailleurs est un hack qui deviendra très vite problématique. C'est fondamentalement mauvaise architecture.

L'utilisation de delayed_job avec un seul Heroku Worker est logique. De plus, delayed_job vous permet de spécifier exactement quand chaque travail doit être exécuté, jusqu'à une granularité de 5 secondes. Oui, c'est 36 $/mois pour cela. Mais cela vous libère de faire les choses de la mauvaise façon. De plus, si vous pensez que vous n'aurez pas besoin du Worker la plupart du temps, vous pouvez regarder dans auto-scaling delayed_job sur Heroku pour que le Worker soit seulement allumé quand vous en avez besoin.

0

Il existe un tas de services en ligne gratuits qui seraient plus qu'heureux de demander votre page Web selon un calendrier que vous définissez. Vous n'avez pas besoin de dépenser ou de coder quoi que ce soit. Juste Google :)

+0

Googled sans succès .. un indice s'il vous plaît? merci – luca

+0

Oh, désolé. Vous avez manqué votre demande complètement :) Mais mieux vaut tard que jamais ... Ceux que j'ai utilisés dans le passé sont http://scheduler.codeeffects.com et http://webbasedcron.com. Le premier a une grande interface utilisateur. D'autres que je connais sont http://setcronjob.com et http://cronjobs.org –