我遇到了以下问题:
通常,这是一个可以用crontab解决的微不足道的问题。但是,我的公司在Heroku上运行, Heroku Scheduler 具有以下有趣的属性:
是否可以实现一个cronjob:
答案 0 :(得分:0)
我可以想到这样做的一种方法是在早上12点和中午12点运行一个脚本的cron服务器(不在Heroku上)。 cron调用的脚本可以使用Heroku Platform API来启动Heroku应用程序中的one-off dyno(使用Dyno Create端点)。
此方法满足您在上午12点和下午12点仅执行一次的要求,而不使用数据库来跟踪执行时间。
这种方法的缺点是它不是一个“纯Heroku”解决方案,并且需要你维护一些“外部”服务器来触发你的cron作业。
如果您不喜欢维护自己的cron服务器的想法,可以使用一些云解决方案来安排脚本。例如,我想你可以使用AWS Lambda with Scheduled Events免费执行此操作。 在这种情况下,你会安排你的lambda函数在每天上午12点和中午12点运行,你的lambda函数会将你的Heroku旋转一下dyno。
当然,如果您愿意在Heroku应用程序中添加某种形式的数据库,您可以轻松创建“纯Heroku”解决方案。