问题标签 [worker-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 投票
8 回答
65913 浏览

c# - 如何让 BackgroundWorker 返回一个对象

我需要RunWorkerAsync()返回一个List<FileInfo>.

能够从后台工作人员返回对象的过程是什么?

0 投票
7 回答
12582 浏览

asp.net - ASP.Net Worker 进程内存配置文件工具

我们有一个相当大容量的 ASP.Net 站点,使用 C# 编写,使用 MS 商务服务器,在 32 位环境中运行。我经常看到高达 980 兆字节的工作进程。我想对这个过程进行概要分析,并确定可以在代码中的哪些地方获得任何收益,以减少该站点的内存占用。我的问题是什么工具对你在 ASP.Net Web 应用程序上做这种事情效果很好?

我正在寻找能够给我非常具体的反馈的工具,这将真正有助于清楚地了解代码中需要更改的内容。如果该工具可以分析我们的生产环境工作进程,以获取更具体的数据集进行比较,那将是最好的。

[编辑]

到目前为止,似乎一致认为这是 Ants 和 JetBrains 之间的折腾。有人用过吗?如果是这样,哪一个更好,或者每个的优点和缺点是什么?

0 投票
2 回答
1689 浏览

session - 经典 ASP 会话和 Web Garden(多人)

当在单个工作人员中使用超过 1.2GB 的 RAM 并希望使用更多工作人员时,我们遇到了 IIS6 速度下降的问题。然而,看起来 ASP 会话是由工作人员创建的,当浏览器通过另一个工作人员访问某个页面时,它会丢失 ASP 会话。

你有一些关于如何解决这个问题的提示吗?

我们正在考虑使用其他方式来与 IIS 分开管理会话(不是数据库,也许是 memcache?)。你有什么推荐吗?

注意:应用程序中充满了遗留代码,我们需要避免对代码进行大的更改。

0 投票
2 回答
8141 浏览

iis-6 - IIS 何时回收工作进程?

当我在 IIS 6 中为我的 Web 应用程序设置应用程序池时,它默认工作进程在 1740 分钟(29 小时)内回收。

即使网站上有活动或仅在 29 小时内没有活动时,这种循环是否也会发生?

0 投票
2 回答
5696 浏览

iis - IIS、多个 CPU 内核、应用程序池和工作进程——单个站点的最佳配置?

我们使用 Kentico CMS,我与他们交换了有关网络花园部署的电子邮件。

我们在具有 8 个 cpu 内核的服务器上运行一个站点。根据 Kentico 的建议,我们没有更改默认的应用程序池网络花园设置,即它设置为最大工作进程数 1。

我们的经验是,该站点仅使用其中一个 cpu 内核 - 其他内核处于空闲状态。当我向他们发送电子邮件时,他们的回应是 OS/IIS 将处理此问题并根据需要使用其他内核,即使应用程序池只有一个工作进程。

现在,我非常尊重 Kentico 的伙计们,但这对我来说似乎不合适?

当然,如果我们想使用所有内核,我们需要允许八个工作进程(并在 SQL 服务器中实现会话状态存储)?

非常感谢

托尼

0 投票
3 回答
420 浏览

.net - 为非线程安全代码构建工作线程池

在 .net 框架中包装非线程安全代码的最佳方法是什么?

我有一个第三方库,由于它使用静态变量,它不是线程安全的。重写它不是一种选择。该库由接收大量同时调用的 asp.net Web 服务使用。

我目前已经将它包装在一个代理类中,该类使用锁来确保线程安全:

性能很差,因为多个调用者必须等待锁定,但结果是正确的。

我想通过运行这个库的多个实例来提高性能,每个实例都在自己的 AppDomain 中。这是一个合理的方法吗?有什么好的示例代码可以推荐吗?

0 投票
1 回答
194 浏览

.net - .NET 拆除 Windows 服务

我正在构建一个简单的 Windows 服务,但遇到了一个小问题。

该服务运行得很好,OnStart 方法创建了一个工作进程来侦听传入的 UDP 连接。

我遇到的问题是,当我单击服务上的停止或重新启动时,服务会在任务管理器中保持运行。不知道我做错了什么。

0 投票
4 回答
33743 浏览

asp.net - ASP.NET 会话状态和多个工作进程

我需要了解一些有关 ASP.NET 会话状态的信息,因为它适用于 IIS 7 和 ASP.net 3.5。

如果应用程序被配置为使用进程内会话状态,那么如果有多个工作进程,那可以正常工作吗?换句话说,工作进程是否共享会话状态?

IIS 7 的默认配置是使用进程内会话状态并分配最多 10 个工作进程。这样看来,这个默认配置应该可以工作。我正在与一家生产 ASP.NET MVC Web 应用程序的公司打交道,该应用程序存在一些问题,他们将责任归咎于服务器环境。声称是因为我使用了 10 个工作进程的默认设置,这破坏了它们的会话状态。我需要知道这是否真的是一个准确的说法。我从来不知道 ASP.NET 应用程序不能使用默认配置,所以我有点困惑,需要澄清一下。

0 投票
3 回答
96801 浏览

asp.net - ASP.NET Web Garden - 我需要多少个工作进程?

决定 ASP.NET Web 应用程序允许多少工作进程的最佳实践是什么?

在我管理的一台服务器上,创建一个新的 AppPool 默认为 10 个(最大)工作进程。其他人建议正常设置为 1。

多个工作进程解决了什么问题,决定多少个工作进程的技术是什么?

0 投票
2 回答
611 浏览

django - 系统架构:在 Web 应用程序后面设置后台任务的简单方法——它会工作吗?

我有一个 Django Web 应用程序,我有一些应该在后台运行(或实际上:启动)的任务。

应用部署如下:

  • apache2-mpm-worker;
  • mod_wsgi 处于守护程序模式(1 个进程,15 个线程)。

后台任务具有以下特点:

  • 他们需要定期运行(每 5 分钟左右);
  • 它们需要应用程序上下文(即应用程序包需要在内存中可用);
  • 除了访问数据库之外,它们不需要任何输入,以执行一些不太繁重的任务,例如发送电子邮件和更新数据库的状态。

现在我在想,解决这个问题的最简单的方法就是简单地搭载现有的应用程序进程(由 mod_wsgi 产生)。通过将任务实现为应用程序的一部分并为其提供 HTTP 接口,我可以防止将所有应用程序保存到内存中的另一个进程的开销。可以设置一个简单的 cronjob,每 5 分钟向这个 HTTP 接口发送一个请求,就是这样。由于应用程序进程提供 15 个线程,而且任务非常轻量级,并且每 5 分钟运行一次,我认为它们不会妨碍 Web 应用程序面向用户的操作的性能。

然而......我做了一些在线研究,我没有看到没有人提倡这种方法。许多文章提出了一种基于成熟消息传递组件(例如Celery,它使用 RabbitMQ)的更复杂的方法。虽然这很性感,但对我来说听起来有点矫枉过正。一些文章建议设置一个 cronjob 来执行执行任务的脚本。但这也不是很吸引人,因为它会导致创建一个新进程,将整个应用程序加载到内存中,执行一些小任务,然后再次销毁该进程。每 5 分钟重复一次。听起来不像是一个优雅的解决方案。

因此,我正在寻找一些关于我在前一段之前的段落中描述的建议方法的反馈。我的推理正确吗?我是否忽略了(潜在的)问题?我假设应用程序的性能不会受到阻碍呢?