问题标签 [background-process]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 安装了多个 PHP 版本的共享主机上的后台脚本
我需要一种为图像管理脚本生成缩略图(使用 PHP5)的方法,并且遇到了一个问题,即我的主机安装了多个版本的 PHP(4 和 5),并将 PHP4 设置为默认值。这意味着从 CLI 对 php 的任何调用都将运行 PHP4。我想出了以下作为我希望成为跨平台解决方案的方法。我在这里发布它主要是因为我在使用 Google 时很难找到任何帮助,所以这可能会在将来对某人有所帮助,我也有以下问题。
- 你有什么明显的问题吗?
- 您是否知道或知道更好的顺序来优化 php5 二进制文件的任何其他路径?
- 如果主机禁用了 exec 或 shell_exec,EGalleryProcessQueue.php 脚本能否作为独立的 cron 作业运行?我还没有访问 cron 的权限来测试它。我不太担心这个问题,因为无论如何我最终都会去测试它。
- 有没有人对我可以获得一些反馈的方式有任何建议,以了解处理图像的距离?请参阅 EGalleryProcessQueue.php 的 TODO 部分 我想在管理部分显示进度条。
主脚本
EGalleryProcessQueue.php
php - 启动一个进程并获取其返回码,如果持续时间过长则中断它
我有一个从命令行启动的 PHP 脚本(又名 CLI 模式,不涉及网络服务器)。
在这个脚本中,我启动了一个命令,该命令将在一段时间后运行,通常在几分钟后退出。但有时,由于各种问题,这个命令会运行几个小时,我能做的最好的就是杀死它并等待一段时间,然后再次启动它。
我想强调两点:
- 我无法控制该命令中的代码,也无法改进故障检测。
- 这不是一项重要的任务,让它以这种方式工作是完全可以的。
话虽如此,我想改进我的代码,以便在命令运行超过 N 秒时终止子进程。但是当它运行良好时,我仍然想从命令中获取返回码。
伪代码应该是这样的:
你将如何在 PHP 中实现这一点?
谢谢 !
解决方案:我最终使用了 SIG_ALERT 信号。Gordon在他的帖子中提供的页面中有关信号处理和 pcntl 库的更多信息。
ruby-on-rails - 我应该将后台进程放在哪里?
我正在构建一个 Rails 项目,该项目具有我正在使用 Rufus Scheduler 管理的 cron 类型的作业。关于如何在 Rails 中进行适当设置,我有两个问题:
- 放置工作代码的最佳位置在哪里?
- 我应该在哪里放置 Rufus 代码来安排工作?我该如何启动它?
ruby-on-rails - 从应用服务器分叉延迟作业?
这是我想要延迟作业运行时的简单理想情况:
- 当第一个应用程序服务器(无论是通过 mongrel 还是乘客)启动时,它会启动我延迟的工作人员。
- 当最后一个运行的应用程序服务器终止时,它会杀死所有延迟的作业工作者。
第一部分(开始)是可行的,尽管我不确定“正确”或“最佳”的方法是什么。只需对延迟作业启动进行有条件的(在尚未运行的进程上)系统调用?
第二部分(终止)——好吧,我不确定它是否可行。绝对不知道如何实现这种效果。
有什么想法或想法吗?
是否有另一种您认为最好的方式来开始/结束延迟工作的工作人员?
附带问题:上面的主要问题是针对生产环境的——一个更困难的情况,因为有多个应用服务器同时运行。在开发环境中(保证只有一个应用程序服务器,而不是它们的集群)中是否可以通过派生一个子进程来运行延迟的作业工作者,这些工作者总是在父进程终止时终止?我该怎么做呢?
.net - 如何在后台运行控制台应用程序(无 UI)?
可能重复:
.Net 控制台应用程序不启动控制台
我有一个用 VB.NET 编写的控制台应用程序,它将成为 Web 服务器上的计划任务。它将每十分钟运行一次。问题是它在处理时每十分钟显示一个空白的黑色 CMD 窗口,这可能会分散注意力。如何将其配置为在后台运行(不显示 CMD 窗口)?
php - 后台进程完成后PHP启动脚本?
我正在使用 PDF2SWF 转换 PDF 并使用 XPDF.. 和 exec.. 进行索引。只有这需要执行时间非常长。
是否可以将其作为后台进程运行,然后在完成转换后启动脚本?
python - Python中的异步后台进程?
我一直以此作为参考,但无法完全完成我所需要的:Calling an external command in Python
我也在读这个: http: //www.python.org/dev/peps/pep-3145/
对于我们的项目,我们有 5 个 svn checkout 需要更新,然后才能部署我们的应用程序。在我的开发环境中,快速部署对于生产力来说比生产部署更重要,我一直在努力加快这个过程。
我有一个运行良好但有一些限制的 bash 脚本。我使用以下 bash 命令启动多个“svn 更新”:
这些都是并行运行的,而且效果很好。我还在构建脚本的其余部分使用这种模式来启动每个 ant 构建,然后将战争转移到 Tomcat。
但是,如果其中一个更新或构建失败,我无法控制停止部署。
我正在用 Python 重写我的 bash 脚本,因此我可以更好地控制分支和部署过程。
我正在使用 subprocess.call() 来触发 'svn update /repo' 命令,但每个命令都是按顺序执行的。我尝试 '(svn update /repo) &' 并且这些都触发了,但结果代码立即返回。所以我无法确定特定命令是否在异步模式下失败。
我很想找到一种方法让 Python 触发每个 Unix 命令,如果任何调用在任何时候失败,整个脚本都会停止。
ruby - 在 Ruby 中生成一个后台进程
我正在为一个学校项目编写一个 ruby 引导脚本,这个引导过程的一部分是启动几个后台进程(它们已编写并正常运行)。我想做的是类似的事情:
但是,这会在第一次调用执行 daemon1 时阻塞。我见过对Process.spawn
方法的引用,但这似乎是 1.9+ 的功能,而且我仅限于 Ruby 1.8。
我也尝试从不同的线程执行这些守护进程,但我希望我的引导脚本能够退出。
那么如何启动这些后台进程,以便我的引导脚本不会阻塞并且可以退出(但仍然让守护进程在后台运行)?
ruby-on-rails - 启动或确保延迟作业在应用程序/服务器重新启动时运行
我们必须使用delayed_job(或其他一些后台作业处理器)在后台运行作业,但我们不允许更改服务器上的启动脚本/启动级别。这意味着如果提供程序重新启动服务器,则不能保证守护程序保持可用(因为守护程序将由每个部署仅运行一次的 capistrano 配方启动)。
目前,我能想到的确保delayed_job 守护程序始终运行的最佳方法是向我们的Rails 应用程序添加一个初始化程序,以检查守护程序是否正在运行。如果它没有运行,则初始化程序启动守护程序,否则,它就让它保持原样。
因此,问题是我们如何检测 Delayed_Job 守护进程正在从脚本内部运行?(我们应该能够相当容易地启动一个守护进程,有点我不知道如何检测一个是否已经处于活动状态)。
有人有想法么?
问候,伯尼
根据下面的答案,这就是我想出的。只需将其放入 config/initializers 中即可:
javascript - 是否有任何使用 JS 轮询服务器以完成后台进程的 Rails 插件?
我知道编写一些轮询 JS 来询问 Rails 应用程序是否已完成后台作业可能很简单。但我想知道是否有人已经将此功能打包为插件。
基本上,我有一些延迟作业正在运行,并且正在寻找一个插件来轮询服务器以完成特定作业,然后在发现作业完成时激活回调。
有什么想法吗?
伯恩斯