Questions tagged «background-process»

后台进程是一种在后台运行(即在后台)并且无需用户干预的计算机进程。这些过程的典型任务包括日志记录,系统监视,调度和用户通知。

14
如何将Node.js作为后台进程运行并且永不消亡?
我通过腻子SSH连接到linux服务器。我试图将其作为这样的后台进程运行: $ node server.js & 但是,在2.5小时后,终端变为非活动状态,该过程终止。无论如何,即使在终端断开连接的情况下,我仍然可以保持该过程正常进行吗? 编辑1 实际上,我尝试过nohup,但是一旦关闭Putty SSH终端或拔出Internet插头,服务器进程就会立即停止。 在腻子里我有什么需要做的吗? 编辑2(2012年2月) 永远有一个node.js模块。它将作为守护程序服务运行node.js服务器。



14
如何在iOS应用程序中每n分钟获取一次后台位置更新?
我正在寻找一种方法来在我的iOS应用程序中每隔n分钟获取一次后台位置更新。我正在使用iOS 4.3,该解决方案应适用于非越狱iPhone。 我尝试/考虑了以下选项: CLLocationManager startUpdatingLocation/startMonitoringSignificantLocationChanges:此操作基于配置的属性,可在预期的后台运行,但是似乎无法强制每n分钟更新一次位置 NSTimer:当应用程序在前台运行时可以工作,但似乎不是为后台任务而设计的 本地通知:可以每n分钟安排一次本地通知,但是无法执行一些代码来获取当前位置(无需用户通过通知启动应用程序)。这种方法似乎也不是一种干净的方法,因为这不是通知的用途。 UIApplication:beginBackgroundTaskWithExpirationHandler:据我所知,当应用程序移至后台时,应使用此方法在后台完成一些工作(时间也受限制),而不是实施“长时间运行”的后台进程。 如何实施这些常规的后台位置更新?


1
为什么git总是告诉我“在后台自动打包存储库以获得最佳性能”?
注意:我不认为这是此问题的重复部分,它是在讨论非后台程序包,它挂起 git 并带有细微的错误消息。 在我的一个git存储库中,每次调用(例如)时git fetch,git都会输出: Auto packing the repository in background for optimum performance. See "git help gc" for manual housekeeping. 如果我git fetch反复进行,即使没有任何变化也无事可做,它似乎每次都打印此内容git fetch。这对我来说没有多大意义。其他网络操作(例如git push和)也似乎发生了这种情况git pull。 该命令立即返回到提示符,没有任何其他输出,并且我找不到在我的计算机上运行的任何git进程。这似乎仅在此存储库中发生,并且仅在此计算机上发生。git config -l | grep gc什么也不返回。 我该怎么做才能诊断或解决此问题? $ git --version git version 2.0.1 我正在使用OS X 10.9。


6
Node.js中的后台进程
有什么好的方法可以处理NodeJS应用程序中的后台进程? 场景:用户向应用程序发布内容后,我想处理数据,从外部资源请求其他数据等。所有这些都非常耗时,因此我希望它脱离req / res循环。理想的情况是只有一排作业,您可以在其中快速转储作业,并且守护程序或任务运行器将始终采用最旧的作业并对其进行处理。 在RoR中,我可以使用“延迟工作”之类的方法来完成。这个API的Node等效项是什么?

10
我可以使用线程在IIS上执行长时间运行的作业吗?
在ASP.Net应用程序中,用户单击网页上的按钮,然后通过事件处理程序在服务器上实例化对象,并在该对象上调用方法。该方法由外部系统处理,这可能需要一段时间。因此,我想做的是在另一个线程中运行该方法调用,以便我可以通过“您的请求已提交”将控制权返回给用户。我很乐意以“一劳永逸”的方式完成此操作,尽管如果用户可以继续轮询对象的状态会更好。 我不知道的是,即使用户会话已过期,IIS是否仍允许我的线程继续运行。想象一下,用户触发事件,我们实例化服务器上​​的对象,并在新线程中触发该方法。用户对“您的请求已提交”消息感到满意,并关闭其浏览器。最终,此用户会话将在IIS上超时,但该线程可能仍在运行,正在工作。IIS将允许线程继续运行,还是在用户会话期满后将其杀死并处理该对象? 编辑:从答案和评论中,我了解做到这一点的最佳方法是将长时间运行的处理移到IIS之外。除了其他方面,这还涉及appdomain回收问题。在实践中,我需要在有限的时间内发布版本1,并且必须在现有的框架内工作,因此想避免使用服务层,因此希望只在IIS内部启动线程。实际上,这里的“长时间运行”仅需几分钟,并且网站上的并发性较低,因此应该可以。但是,下一版本肯定需要拆分为单独的服务层。

5
大量在后台进程中抛出RejectionException而不是ConnectionException
我有在多个队列工作器上运行的作业,其中包含一些使用Guzzle的HTTP请求。但是,GuzzleHttp\Exception\RequestException当我在后台进程中运行这些作业时,该作业中的try-catch块似乎没有出现。正在运行的进程是php artisan queue:workLaravel队列系统工作程序,它监视队列并提取作业。 相反,抛出的异常是以下GuzzleHttp\Promise\RejectionException消息之一: 该承诺因以下原因而被拒绝:cURL错误28:在接收到0个字节的30001毫秒后操作超时(请参阅 https://curl.haxx.se/libcurl/c/libcurl-errors.html) 这实际上是伪装的GuzzleHttp\Exception\ConnectException(请参阅https://github.com/guzzle/promises/blob/master/src/RejectionException.php#L22),因为如果我在通过访问URL,我确实收到了ConnectException如下消息: cURL错误28:100毫秒后操作超时,收到0个字节中的0个(请参阅 https://curl.haxx.se/libcurl/c/libcurl-errors.html) 触发此超时的示例代码: try { $c = new \GuzzleHttp\Client([ 'timeout' => 0.1 ]); $response = (string) $c->get('https://example.com')->getBody(); } catch(GuzzleHttp\Exception\RequestException $e) { // This occasionally gets catched when a ConnectException (child) is thrown, // but it doesnt happen with RejectionException because it is not …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.