草庐IT

php - 长进程 php

我需要运行一个非常长的php脚本(四个半小时,五个小时)。脚本有时运行成功,但有时会莫名其妙地被杀死(可能与共享主机有关??)。我认为运行脚本的解决方案可能是更小的block。为了做到这一点,我编写了一个脚本,将其状态和位置存储在一个xml文件中,并在移动位置之前执行脚本的一部分。我在连接脚本的最后一位时遇到问题,这应该会结束当前进程并重新执行脚本。或者我完全找错了树!我已经通读了我在SO和其他地方可以找到的内容,但我仍然不明白:(请帮忙!!!担 最佳答案 考虑到您有一个永远运行但不会导致数据不一致的脚本,您可以使用cronjob。

php - 放弃 PHP 中的长进程(但让它们完成)

我有一个提交到启动脚本的PHP页面的HTML表单。该脚本可能需要3秒到30秒的时间才能运行-用户无需在附近即可完成该脚本。是否可以启动一个PHP脚本,立即向用户打印“谢谢”(或其他任何内容)并让他们继续他们的快乐,同时您的脚本继续工作?在我的特定情况下,我将表单数据发送到一个php脚本,然后该脚本将数据发布到许多其他位置。目前,等待所有帖子成功不符合我的兴趣。我只想让脚本运行,允许用户去做他们喜欢的任何其他事情,仅此而已。 最佳答案 例如将您的长期工作放在另一个php脚本中背景.php:sleep(10);file_put_cont

java - 从 java servlet 运行长进程的最佳方法是什么?

我想问一下从javaservlet运行一个长进程的最佳方法是什么。我有一个webapp,当客户端发出请求时,它会运行一个servlet。这个servlet应该从请求中获取一些参数,然后运行一个进程。这个过程可能需要很长时间,所以我需要单独运行它。当这个过程执行完成时,它会发送一封包含结果的电子邮件。提前致谢。 最佳答案 使用线程池。每次收到请求,就创建一个任务,提交给线程池。这将确保过多的请求不会使服务器崩溃,因为您可以控制可以拥有多少并发线程,以及可以在线程池的等待任务队列中等待多少任务。请参阅Executors的javadoc和

python - subprocess.popen 的 poll 方法对于长进程返回 None

我正在通过子进程执行curl命令。此curl命令在另一台服务器上启动视频处理,并等待响应。该过程完成后,远程服务器返回json对象。我正在使用poll()值检查子进程的状态,该值是None-进程未完成,0-进程成功完成,1-表示错误。如果远程服务器上的处理时间大约为30分钟或更少,我将得到正确的响应,但如果处理时间更长,我将只得到None值,即使我可以看到远程服务器已完成处理并已返回json对象。谁能告诉我,poll()在特定时间后仅返回None的可能原因是什么。提前谢谢你。我的Popen对象是:object=subprocess.Popen(str(curlCmd),shell=Tr

go - 如何管理 Web 应用程序中的长进程

我正在尝试在Go中实现以下功能。我有一个带有表单的网页,用于上传.csv文件。Gorillamux用于路由到一个处理程序,该处理程序获取文件并对其进行解析,对数据进行一系列操作,最后生成一个报告,其中包含已解析的行数、拒绝行数等。我的问题是,即使它可以在我的机器上运行,但在服务器上Apache会在我完成所有操作之前超时:文件上传本身不是问题,但我必须等待转换在数据上完成。我尝试使用Gorillawebsocket从流程中获取反馈(例如,增加解析和处理的行数)并保持连接打开,但这是一个POST请求,Gorillawebsocket不会从http到websocket,除非有GET请求。我什