在Heroku上,我可以从调度程序输出中收到电子邮件吗?

时间:2014-03-08 05:16:08

标签: heroku cron crontab

假设我想每5分钟运行一个这个简单的脚本并将输出发送到我的电子邮件中?

在通常的服务器上,我只是这样做:

$ cat echo.sh
#!/bin/sh
echo "Hello"

$ crontab -l
*/5 * * * * /whatever/bin/echo.sh

这会向我发送一封电子邮件,其中脚本名称为主题,Hello每隔5分钟发送一次。

如何在Heroku上获得相同的行为?

1 个答案:

答案 0 :(得分:0)

这是一个快速解决方案,每隔10分钟向您发送一封电子邮件。 heroku调度程序不提供更短的间隔。安装这两个附加组件:

  1. https://addons.heroku.com/sendgrid(发送电子邮件)

    heroku addons:add sendgrid
    
  2. https://addons.heroku.com/scheduler(安排工作)

    heroku addons:add scheduler
    
  3. 然后将流动的脚本 mail.sh 添加到您的应用中:

    #!/bin/sh
    SGTO=receiver@example.com
    SGTONAME='Some Name'
    SGSUBJECT='Email Subject'
    SGFROM=from@example.com
    SGTEXT='Email Text'
    curl -d "to=${SGTO}&toname=${SGTONAME}&subject=${SGSUBJECT}&text=${SGTEXT}&from=${SGFROM}&api_user=${SENDGRID_USERNAME}&api_key=${SENDGRID_PASSWORD}" https://api.sendgrid.com/api/mail.send.json
    

    最后转到您的计划程序并添加新作业。指定bash mail.sh作为任务。