如何在发出Web请求的Heroku Java应用程序中运行定期进程

时间:2012-08-04 06:15:30

标签: java heroku

根据我对Heroku平台的理解,他们每个应用程序只允许一个可以处理HTTP请求的dyno。在Java应用程序中,我的目标是每天运行一次或两次定期进程,从Facebook服务器获取信息并相应地处理它。如果后台工作人员dyno无法处理Web请求,那么我该如何在Web dyno中编写重复发生的进程?

2 个答案:

答案 0 :(得分:1)

从这个意义上说,"处理HTTP请求"指的是连接的监听端而不是发送端。在Heroku上,应用程序可以拥有一个侦听HTTP连接的Web进程*以及启动/发送HTTP请求(或连接到其他非HTTP系统)的许多其他进程。

*注意:您可以根据需要分配任意数量的Dynos,以运行每个进程。

要运行定期向外部服务(如Facebook)发出请求的流程,您可以使用Heroku Scheduler Add-on。然后,您可以将结果存储在众多relational or NoSQL data-storage add-ons中的一个中,也可以通过CloudAMQP等消息传递加载项将结果发送到其他进程。

答案 1 :(得分:0)

如果平台限制你,为什么要使用它?
还有其他平台可以让你执行此操作。 您可以使用OpenShift轻松地将Java应用程序部署到云中,然后就我所知,您可以使用java API,没有任何限制。
OpenShift也使用git,就像Heroku一样。
它们都是PaaS,因此概念完全相同,我认为您可以轻松尝试OpenShift。
您还可以查看Google App Engine,看看它是否有此类限制。
很抱歉没有帮助您解决具体问题,我只知道至少“一个竞争对手”没有这样的限制。