问题标签 [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 投票
4 回答
246 浏览

c# - BackgroundWorker 行为怪异

我正在处理一些调用服务的代码。此服务调用可能会失败,如果确实如此,我希望系统重试,直到它正常工作或经过太多时间。

我想知道我哪里出错了,因为以下代码似乎无法正常工作......它随机只执行一到四个循环......

干杯安东尼

更新:

我已经将我的代码切换为使用 ThreadPool.QueueUserWorkItem ......因为这样做我的问题已经消失并且在语义上我可以做同样的事情。感谢您的所有帮助。

0 投票
3 回答
2440 浏览

asp.net - Web (asp.net) 环境中长时间运行的操作(线程)

我有一个 asp.net (mvc) 网站。作为功​​能的一部分,我将不得不支持一些长时间运行的操作,例如:

从用户发起:用户可以上传(xml)文件到服务器。在服务器上,我需要提取文件,进行一些操作(插入数据库)等......这可能需要一分钟到十分钟(甚至更长时间 - 取决于文件大小)。当然,我不想在导入运行时阻止请求,但我想将用户重定向到某个进度页面,他将有机会查看状态、错误甚至取消导入。

此操作不会经常使用,但可能会发生两个用户同时尝试导入数据的情况。并行运行导入会很好。一开始我想在 iis(控制器操作)中创建一个新线程并在新线程中运行导入。但我不确定这是否是个好主意(在 Web 服务器上创建工作线程)。我应该使用 Windows 服务还是任何其他方法?

从系统启动: - 我将不得不使用新数据定期更新 lucene 索引。- 我将不得不发送大量电子邮件(将来)。

我应该将其作为站点中的作业实现并通过 Quartz.net 运行作业,还是还应该创建 Windows 服务或其他什么?

运行站点“作业”时的最佳实践是什么?

谢谢!

0 投票
4 回答
7406 浏览

python - Python - 从 Web 应用程序启动长时间运行的进程

我有一个 python web 应用程序需要启动一个长时间运行的进程。问题是我不希望它等待该过程完成。只需启动并完成。

我在 Windows XP 上运行,并且 Web 应用程序在 IIS 下运行(如果重要的话)。

到目前为止,我尝试了 popen 但这似乎没有用。它一直等到子进程完成。

0 投票
1 回答
1378 浏览

asp.net - 使用异步页面的 Asp.net 长时间运行进程

我有一份报告大约需要 2 或 3 分钟才能提取所有数据

所以我试图使用 ASP.net 异步页面来防止超时。但无法让它工作

这就是我正在做的事情:

所以我有一个代表长期运行方法(GetReportData)的委托。

我试图按照这篇文章来称呼它:

http://msdn.microsoft.com/en-us/magazine/cc163725.aspx

长时间运行的方法确实在调试器中完成,但 EndAsynchOperation 和 Page_PreRenderComplete 方法上的断点永远不会被命中

知道我做错了什么吗?

0 投票
4 回答
5083 浏览

powershell-2.0 - 长时间运行的 Powershell 脚本冻结

我们正在使用一个长时间运行的 PowerShell 脚本来执行许多可能需要很长时间的小操作。大约 30 分钟后,脚本冻结了。我们能够让脚本重新开始运行,按下Ctrl-C它会导致脚本恢复执行而不是终止进程。

是否有某种脚本超时或机制阻止 PowerShell 中长时间运行脚本?

0 投票
2 回答
683 浏览

c# - 编写一个长时间运行的基于时间的进程

我想知道编写应用程序的最佳方式是什么。基本上,我有一个多线程的运动模拟项目,可以同时执行不同的游戏模拟。

我将匹配项存储在附加了 DateTime 的 SQLite 数据库中。

我想编写一个应用程序,每隔一小时左右检查一次,看看是否需要播放任何新的比赛并产生这些线程。

我不能依赖任务调度程序每小时执行一次,因为该进程的不同实例会共享一些对象(特别是锦标赛对象),我怀疑这些对象在保存回数据库时会被更新的进程覆盖. 所以理想情况下,我需要编写一些在几个小时之间休眠的长时间运行的进程。

我已经编写了我的对象模型,以便每个对象只从内存中加载一次,因此只要所有模拟线程都是从这个应用程序产生的,它们就不应该覆盖数据。

编辑:有关要求的更多详细信息

基本上,多个比赛需要能够同时运行。这些匹配可以是任意长度,因此没有必要让一个在另一个开始之前完成(事实上,在大多数情况下,会同时执行多个匹配)。

我设想的是一个在后台运行的程序(我猜是一项服务?),它会休眠 60 分钟,然后检查数据库以查看是否应该启动任何游戏。如果有任何要启动的,它会触发线程来模拟这些游戏,然后重新进入睡眠状态。因此,模拟线程正在运行,但“调度”线程又休眠了 60 分钟。

我不能(我认为)使用默认操作系统任务调度接口的原因是这些需要执行的任务作为新进程被拒绝。我已经开发了我的数据库对象模型,以便它们在第一次加载(内存引用)时由每个对象类缓存,这意味着每个对象只从内存中加载一次,并且该引用用于所有保存。这意味着当每个模拟线程完成并保存其状态时,使用相同的引用(具有更新的状态)来保存状态。如果每次启动不同的可执行文件,则可能每个进程都会打开不同的内存引用,因此一个进程可以保存到数据库中并覆盖另一个进程写入的状态。

服务看起来像是要走的路。有没有办法让服务只睡 60 分钟,然后醒来并执行一个功能?我觉得把它作为一个标准的控制台应用程序会浪费内存,但我不知道是否有一种有效的方法来做我不知道的事情。

0 投票
3 回答
3289 浏览

extjs - 长进程阻塞在 ExtJS 中等待图标渲染

我正在实现的功能并不是真正需要的,因此我不会为此包含额外的线程库。但是,如果有人知道解决方法,我将不胜感激。

所以我有一个 256 行和 3 列的网格;其中一列是checkboxColumn(类似于此处使用的列)。但是该 checkboxColumn 插件已被修改为在标题中显示一个复选框,以允许一种Check-AllCheck-None功能。

因为有太多行,所以检查所有过程需要很长时间。所以我决定放一个“纺车”(等待 gif 动画)。现在的问题是动画不起作用。所以我defer调用了允许动画图标的渲染,但似乎这defer还不足以让动画运行。尽管这defer至少允许显示等待 gif 的第一帧,而不是显示检查状态大约一分钟,直到一切完成后显示未检查状态。

这是昂贵的方法:

您可以在以下代码片段中看到一个工作示例:

单击列复选框(标题上的复选框)并查看未按预期旋转的 gif 。

注意:我在其他地方有分页功能,但我不会在这里使用它,因为 256 行总是相同的。所以我宁愿丢失检查所有按钮而不是分页。

0 投票
3 回答
5917 浏览

excel - 如何在 VBA 中执行长时间运行的进程而不进行 pc 爬网?

我有一个 VBA 应用程序,它创建一个 COM 对象的实例,然后不断地轮询对象的DataReady属性以查看是否有新数据。当有新数据可用时,它会将数据粘贴到电子表格中。问题是这个宏(vba 子例程)不断运行,这会减慢 excel 的爬行速度,并使计算机在进程运行时有些无法使用。有没有一种方法可以让我在单独的线程上启动这个进程,或者做一个 .NET 后台工作者之类的事情?

我的两次尝试是使用这样的while循环..

然后这个

第二次尝试肯定效果更好,但它仍然大大减慢了速度。有更好的解决方案吗?

我的 COM 对象是我用 C# 编写的类库。当数据准备好时,我可以添加在类库中触发的事件,但是如何在 VBA 程序中监听这些事件?

0 投票
4 回答
1181 浏览

asp.net - 在 ASP.NET 中处理长时间运行的进程的常用方法

我们有一个长时间运行的数据传输过程,它只是一个被调用和运行的 asp.net 页面。最多可能需要几个小时才能完成。它似乎工作得很好,但我只是想知道有哪些更流行的方法来处理这样的漫长过程。您是创建应用程序并通过 Windows 调度程序、Web 服务或自定义处理程序运行它吗?

0 投票
2 回答
1928 浏览

python - Django,Python调用Python代码而不等待响应?

我正在使用 Django,并且正在制作一些长时间运行的进程,我只是通过我的 Web 用户界面与之交互。例如,它们将一直在运行,每隔几分钟检查一次数据库值,并且仅当它发生变化时才停止(布尔值是真假)。所以,我希望能够使用 Django 与这些交互,但是我不确定如何做到这一点。当我以前使用 PHP 时,我有一些方法可以做到这一点,认为在 Python 中这样做会更容易,但我无法通过搜索找到任何关于此的内容。

基本上,我想做的就是执行 python 代码而不等待它完成,所以它只是开始执行然后继续为 django 做任何其他需要的事情,快速向用户返回一个新页面。

我知道有很多方法可以调用外部程序,所以我想这可能是唯一的方法吗?有没有办法只调用其他python代码来做到这一点?

感谢您的任何建议。