问题标签 [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.

0 投票
1 回答
660 浏览

php - 安装了多个 PHP 版本的共享主机上的后台脚本

我需要一种为图像管理脚本生成缩略图(使用 PHP5)的方法,并且遇到了一个问题,即我的主机安装了多个版本的 PHP(4 和 5),并将 PHP4 设置为默认值。这意味着从 CLI 对 php 的任何调用都将运行 PHP4。我想出了以下作为我希望成为跨平台解决方案的方法。我在这里发布它主要是因为我在使用 Google 时很难找到任何帮助,所以这可能会在将来对某人有所帮助,我也有以下问题。

  1. 你有什么明显的问题吗?
  2. 您是否知道或知道更好的顺序来优化 php5 二进制文件的任何其他路径?
  3. 如果主机禁用了 exec 或 shell_exec,EGalleryProcessQueue.php 脚本能否作为独立的 cron 作业运行?我还没有访问 cron 的权限来测试它。我不太担心这个问题,因为无论如何我最终都会去测试它。
  4. 有没有人对我可以获得一些反馈的方式有任何建议,以了解处理图像的距离?请参阅 EGalleryProcessQueue.php 的 TODO 部分 我想在管理部分显示进度条。

主脚本

EGalleryProcessQueue.php

0 投票
1 回答
255 浏览

php - 启动一个进程并获取其返回码,如果持续时间过长则中断它

我有一个从命令行启动的 PHP 脚本(又名 CLI 模式,不涉及网络服务器)。

在这个脚本中,我启动了一个命令,该命令将在一段时间后运行,通常在几分钟后退出。但有时,由于各种问题,这个命令会运行几个小时,我能做的最好的就是杀死它并等待一段时间,然后再次启动它。

我想强调两点:

  • 我无法控制该命令中的代码,也无法改进故障检测。
  • 这不是一项重要的任务,让它以这种方式工作是完全可以的。

话虽如此,我想改进我的代码,以便在命令运行超过 N 秒时终止子进程。但是当它运行良好时,我仍然想从命令中获取返回码。

伪代码应该是这样的:

你将如何在 PHP 中实现这一点?

谢谢 !

解决方案:我最终使用了 SIG_ALERT 信号。Gordon他的帖子中提供的页面中有关信号处理和 pcntl 库的更多信息。

0 投票
1 回答
567 浏览

ruby-on-rails - 我应该将后台进程放在哪里?

我正在构建一个 Rails 项目,该项目具有我正在使用 Rufus Scheduler 管理的 cron 类型的作业。关于如何在 Rails 中进行适当设置,我有两个问题:

  1. 放置工作代码的最佳位置在哪里?
  2. 我应该在哪里放置 Rufus 代码来安排工作?我该如何启动它?
0 投票
1 回答
692 浏览

ruby-on-rails - 从应用服务器分叉延迟作业?

这是我想要延迟作业运行时的简单理想情况:

  • 当第一个应用程序服务器(无论是通过 mongrel 还是乘客)启动时,它会启动我延迟的工作人员。
  • 当最后一个运行的应用程序服务器终止时,它会杀死所有延迟的作业工作者。

第一部分(开始)是可行的,尽管我不确定“正确”或“最佳”的方法是什么。只需对延迟作业启动进行有条件的(在尚未运行的进程上)系统调用?

第二部分(终止)——好吧,我不确定它是否可行。绝对不知道如何实现这种效果。

有什么想法或想法吗?

是否有另一种您认为最好的方式来开始/结束延迟工作的工作人员?

附带问题:上面的主要问题是针对生产环境的——一个更困难的情况,因为有多个应用服务器同时运行。在开发环境中(保证只有一个应用程序服务器,而不是它们的集群)中是否可以通过派生一个子进程来运行延迟的作业工作者,这些工作者总是在父进程终止时终止?我该怎么做呢?

0 投票
1 回答
33093 浏览

.net - 如何在后台运行控制台应用程序(无 UI)?

可能重复:
.Net 控制台应用程序不启动控制台

我有一个用 VB.NET 编写的控制台应用程序,它将成为 Web 服务器上的计划任务。它将每十分钟运行一次。问题是它在处理时每十分钟显示一个空白的黑色 CMD 窗口,这可能会分散注意力。如何将其配置为在后台运行(不显示 CMD 窗口)?

0 投票
3 回答
1123 浏览

php - 后台进程完成后PHP启动脚本?

我正在使用 PDF2SWF 转换 PDF 并使用 XPDF.. 和 exec.. 进行索引。只有这需要执行时间非常长。

是否可以将其作为后台进程运行,然后在完成转换后启动脚本?

0 投票
1 回答
12525 浏览

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 命令,如果任何调用在任何时候失败,整个脚本都会停止。

0 投票
2 回答
27020 浏览

ruby - 在 Ruby 中生成一个后台进程

我正在为一个学校项目编写一个 ruby​​ 引导脚本,这个引导过程的一部分是启动几个后台进程(它们已编写并正常运行)。我想做的是类似的事情:

但是,这会在第一次调用执行 daemon1 时阻塞。我见过对Process.spawn方法的引用,但这似乎是 1.9+ 的功能,而且我仅限于 Ruby 1.8。

我也尝试从不同的线程执行这些守护进程,但我希望我的引导脚本能够退出。

那么如何启动这些后台进程,以便我的引导脚本不会阻塞并且可以退出(但仍然让守护进程在后台运行)?

0 投票
4 回答
8841 浏览

ruby-on-rails - 启动或确保延迟作业在应用程序/服务器重新启动时运行

我们必须使用delayed_job(或其他一些后台作业处理器)在后台运行作业,但我们不允许更改服务器上的启动脚本/启动级别。这意味着如果提供程序重新启动服务器,则不能保证守护程序保持可用(因为守护程序将由每个部署仅运行一次的 capistrano 配方启动)。

目前,我能想到的确保delayed_job 守护程序始终运行的最佳方法是向我们的Rails 应用程序添加一个初始化程序,以检查守护程序是否正在运行。如果它没有运行,则初始化程序启动守护程序,否则,它就让它保持原样。

因此,问题是我们如何检测 Delayed_Job 守护进程正在从脚本内部运行?(我们应该能够相当容易地启动一个守护进程,有点我不知道如何检测一个是否已经处于活动状态)。

有人有想法么?

问候,伯尼

根据下面的答案,这就是我想出的。只需将其放入 config/initializers 中即可:

0 投票
2 回答
301 浏览

javascript - 是否有任何使用 JS 轮询服务器以完成后台进程的 Rails 插件?

我知道编写一些轮询 JS 来询问 Rails 应用程序是否已完成后台作业可能很简单。但我想知道是否有人已经将此功能打包为插件。

基本上,我有一些延迟作业正在运行,并且正在寻找一个插件来轮询服务器以完成特定作业,然后在发现作业完成时激活回调。

有什么想法吗?

伯恩斯