问题标签 [long-running-processes]

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 投票
2 回答
235 浏览

asp.net - ASP.NET 长任务挂起其他页面?

我正在使用出色的 SpreadSheetGear 工具即时生成报告。起初一切都很好,因为报告很简单并且在 1 秒内完成。现在我处理更复杂的报告,它们需要大约 30 秒到 1 分钟。这不是问题,我们只是抛出一个活动图像,让用户等待,我们很好。

我发现的问题是当两个用户访问该站点时。

  1. 用户 1 来到网站
  2. 用户 1 运行需要 30 秒的报告。
  3. 用户 2 来到站点
  4. 用户 2 等待用户 1 报告完成,然后页面加载。

为用户 1 运行的报告会挂起站点,直到完成。发生了什么事,我该如何解决?

0 投票
5 回答
932 浏览

asp.net - 具有长时间运行的同步请求的 ASP.NET 应用程序的注意事项

如果 ASP.NET 应用程序(使用 ASP.NET 线程池,同步请求处理)长时间运行(> 30 分钟),则在 windows server 2008 64 位、IIS 7.0 和 .NET 4.0 下。Web 应用程序没有页面,主要目的是以块(~5 MB)读取大文件(> 1 GB)并将它们传输到客户端。代码:

单一生产者 - 实现了单一消费者模式,因此每个请求都有两个线程。我在这里不使用任务库,但请告诉我在这种情况下它是否比传统的线程创建更有优势。使用 HTTP 处理程序 (.ashx) 代替 (.aspx) 页面。在压力测试下,CPU 利用率不是问题,但是对于单个工作进程,在 210 个并发客户端之后,新连接会遇到超时。这可以通过网络园艺解决,因为我不使用会话状态。我不确定我是否遗漏了任何大问题,但请让我知道您认为应该考虑哪些其他因素?

例如,由于“连接超时”,IIS 可能会关闭长时间运行的 TCP 连接,因为正常的 ASP.NET 页面在 5 分钟内处理完毕,所以我应该增加该值。

我很欣赏你的想法。

0 投票
1 回答
3774 浏览

javascript - 在长时间运行的函数中强制使用 jQuery 修改 DOM 立即更新

我有一个执行大约需要 2 秒的 javascript(复杂的优化算法)。我想在函数开始时将某个跨度设置为“工作...”。我观察到跨度在函数结束之前不会改变。

如何强制 DOM 更改传播?还是我应该一起以不同的方式处理这个问题?

我从按钮上的 onclick 调用该函数。

该功能类似于:

0 投票
1 回答
413 浏览

ruby-on-rails - 在用户等待时(在 Rails 中)处理大量数据的最佳实践?

我有一个书签,在使用时,它会将当前浏览器页面上的所有 URL 提交给 Rails 3 应用程序进行处理。在幕后,我使用Typhoeus检查每个 URL 是否返回 2XX 状态代码。目前,我通过向 Rails 服务器发出 AJAX 请求启动此过程,并在它处理并返回结果时等待。对于一个小的集合,这非常快,但是当 URL 的数量很大时,用户可能会等待长达 10-15 秒。

我考虑过使用延迟作业在用户线程之外处理这个问题,但这似乎不太适合用例。由于用户需要等到处理完成才能看到结果,而延迟作业可能需要长达五秒钟的时间才能开始作业,所以我不能保证处理会尽快发生。不幸的是,在这种情况下,这个等待时间是不可接受的。

理想情况下,我认为应该发生的是:

  • 用户点击书签
  • 数据被发送到服务器进行处理
  • 在关闭线程进行处理时立即返回等待页面
  • 等待页面通过 ajax 定期轮询处理结果并更新等待页面(例如:“4 of 567 URLs processed...”)
  • 等待页面在结果准备好后更新

一些额外的细节:

  • 我正在使用 Heroku(长时间运行的进程在 30 秒后被终止)
  • 登录用户和匿名用户都可以使用此功能

这是执行此操作的典型方法,还是有更好的方法?我应该只是滚动我自己的线程外处理,在处理过程中更新数据库,还是有类似延迟作业之类的东西可以用于此(并且适用于 Heroku)?任何朝着正确方向的推动都将不胜感激。

0 投票
2 回答
867 浏览

.net - 设计长期运行的资源密集型 Web 服务的建议

我有一个 .NET 函数可以进行一些复杂的计算。根据传入的参数,函数:

  • 运行时间从几分钟到几个小时不等
  • 在计算期间使用 100% 的单核
  • 需要从 100 MB 到几 GB 的内存
  • 将几 MB 到几 GB 的数据写入磁盘
  • 可能抛出异常,包括 OutOfMemoryException

可以从函数参数化中准确预测要写入磁盘的数据量。没有简单的方法可以从函数参数化中预测其他资源需求。

我需要通过 Web 服务公开此功能。该服务需要:

  • 灵活且优雅地报告计算过程中的任何问题
  • 能够处理并发请求,只要有足够的资源来处理请求而不会显着降低性能,否则优雅地拒绝请求。

我打算通过让初始请求返回一个可以轮询进度的状态资源来处理长时间运行的性质。计算完成后,此资源将提供输出数据的位置,客户端可以下载(可能通过 FTP)。

我不太清楚如何最好地处理其他要求。我正在考虑某种“计算池”来维护计算器的实例并跟踪当前正在使用哪些实例,但我还没有弄清楚细节。

有类似情况经验的人有什么建议吗?只要解决方案可以在 Windows 机器上运行,所有技术选项都可以考虑。

0 投票
7 回答
3410 浏览

c++ - 计算一个巨大的 C++ 程序的运行时间

估计时间的建议方法是使用clock() 函数,然后将cpu 周期数除以周期/秒。

我的问题是我尝试运行的程序需要很多时间(以小时为单位)。这意味着 clock() 函数(返回一个 long int)返回一个垃圾值(因为 max long int 不够大)

有什么建议(除了估计内部循环的时间并将它们加起来什么的)?

0 投票
1 回答
4012 浏览

events - 自定义事件处理程序中的 Qt QApplication::processEvents()

是否可以在事件处理程序中调用 QApplication::processEvents() ,其中有一个很长的过程。我的程序以 Segfault 终止。我的代码是这样的:

0 投票
1 回答
232 浏览

jquery - 尽管在不同的请求上,控制器的动作似乎是同步的?

我的印象是下面的代码应该异步工作。

但是,当我查看 firebug 时,我看到请求是异步触发的,但结果是同步返回的:

请求被同步处理

控制器:

Javascript/jQuery:

附加信息:

  • IIS 7.0
  • 视窗 2008 R2 服务器
  • 在 VMWare 虚拟机中运行

谁能解释一下?动作不应该Status立即返回而不是等待CreateSite完成吗?


编辑:

我怎样才能让长期运行的过程开始并仍然获得状态更新?

0 投票
4 回答
277 浏览

.net - .Net 长时间运行的计划代码执行

我现在正在做几个项目,我真的希望有某种组件可以指定时间和日期,然后执行某种方法。

我知道我可以将 Windows Workflow Foundation 作为一个长期运行的进程来执行此操作,这对某些事情有好处,但有其他选择吗?工作流程的细节并不完全直截了当,能够为轻量级任务部署更简单的东西会很好。例如,每天检查一次网络文件夹并删除任何超过 30 天的文件的方法。我意识到这可能是天方夜谭,但这对于自动化某些日常维护任务(计划的 sql 操作、文件系统清理、例行电子邮件发送等)非常有用。它不一定必须是.Net,但这就是我来自的地方。有任何想法吗?

0 投票
4 回答
41369 浏览

mysql - MySQL - 我可以限制查询运行的最长时间吗?

我正在寻找一种方法来限制 mysql 服务器上查询的最大运行时间。我认为这可以通过my.cnf配置文件完成,但在文档中找不到任何相关内容。有谁知道这是否可以做到?谢谢。