Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Heroku Java应用程序中运行发出web请求的周期进程_Java_Heroku - Fatal编程技术网

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

如何在Heroku Java应用程序中运行发出web请求的周期进程,java,heroku,Java,Heroku,根据我对Heroku平台的理解,他们只允许每个应用程序使用一个dyno来处理HTTP请求。在Java应用程序中,我的目标是每天运行一到两次定期进程,从Facebook服务器获取信息并相应地进行处理。如果后台工作者dyno无法处理web请求,那么我应该如何在web dyno中编写一个重复出现的流程 如果平台限制了你,为什么要使用它 还有其他平台可以让您执行此操作。 据我所知,您可以轻松地使用java API将java应用程序部署到云端,然后使用java API,而不受任何限制 OpenShift也

根据我对Heroku平台的理解,他们只允许每个应用程序使用一个dyno来处理HTTP请求。在Java应用程序中,我的目标是每天运行一到两次定期进程,从Facebook服务器获取信息并相应地进行处理。如果后台工作者dyno无法处理web请求,那么我应该如何在web dyno中编写一个重复出现的流程

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

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

*注意:您可以根据需要分配任意多的dyno来运行每个进程


要运行定期向外部服务(如Facebook)发出请求的流程,您可以使用。然后,您可以将结果存储在多个进程中的一个进程中,也可以通过类似的消息传递插件将结果发送到其他进程。

为什么不编写一个独立的程序来执行该任务,并使用Heroku scheduler插件每天运行一次?我正在研究类似的方法,但在web上遇到了同样的问题路由。调度器本质上是一个周期性运行的一次性进程,根据Heroku的说法,一次性进程无法接收HTTP流量(请参阅第页的formation dynos vs one-off dynos)。您能否澄清为什么需要该进程来接收web请求?如果流程应该“从Facebook服务器获取信息”,那么听起来您的流程将调用Facebook,而不是相反。这完全有可能是一次性的dyno。是的,这就是我所做的,它只会从Facebook服务器请求信息。我假设后台进程无法处理HTTP请求这一事实意味着它无法处理HTTP协议周期。我可能错误地认为,作为一个周期性的过程,我试图做的操作没有问题。如果没有解决这个限制的方法,在这种情况下,可能值得研究另一个PaaS。在Heroku之外有另一台服务器来处理此维护任务是否可行?(后台进程仅更新数据库中的值)@Ryan Sasson-您将在何处托管此服务器,谁将处理其部署?你不需要把它也放到云端吗?好的,知道了,听起来不错。我唯一的问题是Heroku调度程序插件是否有运行时间限制?如果它允许一段合理的时间,那应该没问题,但是如果它少于10-15分钟,那么当应用程序真正扩展时,它可能就不够了。没有时间限制,但是你将为这个过程运行多长时间付费。