问题标签 [fire-and-forget]

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 回答
7368 浏览

perl - 如何在 Perl 中触发并忘记一个进程?

有人可以告诉我如何在 Perl 中触发并忘记一个进程吗?我已经看过ruby​​: how to fire and forget a subprocess? 在 Ruby 中做同样的事情。

0 投票
4 回答
631 浏览

c# - C# 对即发即弃的改进

问候

我有一个程序可以创建一个类的多个实例,在所有实例上运行相同的长时间运行的 Update 方法并等待完成。我从更新添加到ThreadPool.QueueUserWorkItem.

在主编中,我睡了几分钟,检查最后一个孩子的布尔值,看看是否完成

这个解决方案正在按照我想要的方式工作,但是有没有更好的方法来做到这一点?对于独立实例和检查所有工作是否已完成。

谢谢

更新: 不需要锁定。不同的实例每个都有不同的 Web 服务 URL,它们从它们请求,并在响应上做类似的工作。他们都在做自己的事情。

0 投票
4 回答
2982 浏览

java - PHP exec(),我可以解雇并忘记吗?

我一直在尝试通过 php 表单执行 java 应用程序..所以提交按钮触发执行命令:

第一个路径确定 jar 文件的位置,第二个用作参数。

问题是脚本需要很长时间才能处理,我想绕过等待,有没有办法做到(就像火灾和忘记)?该脚本将结果写入一个文件,如果文件在那里,我可以每 5 分钟检查一次,但是等待进程完成很不方便......

有什么建议么 ?

先感谢您

0 投票
2 回答
1264 浏览

c# - 使用 wsHttpBinding 时如何在 WCF 中触发并忘记

我有一个WCF托管在 IIS 中的服务,它由 ASP.NET 应用程序使用。服务和客户端位于不同的服务器上并通过互联网进行通信。

Messagesecurity overwsHttpBinding用作安全模型(使用X.509证书)。

我测试了该服务,Fiddler一切似乎都很好,除非一个电话在提琴手中有 4 个会话(两个往返)。我不需要会话WCF并且希望我的调用线程(它们是 asp.net 工作线程)在调用WCF方法时不会被阻塞。

使用服务时如何实现即发即弃模式WCF(如果需要,我可以更改服务合同)?

0 投票
2 回答
8702 浏览

c# - 来自 C# 的 Fire and Forget Sql Server 存储过程

我正在做一个排队的工作,在每个工作结束时,我想触发一个 SP,它将对数据进行大量处理。所以我不想等待 SP 完成,我只想在触发 SP 后立即转移到下一个工作。存储过程将从触发代码中获取输入。

问题:-
这是我创建工作的脚本。请注意,我没有添加任何时间表。

现在,当我通过执行开始这项工作时EXEC msdb.dbo.job_JobName',它并没有执行dbo.SpToExecute。我只需要dbo.SpToExecute在作业中运行一次,然后作业应该停止。当我再次执行时EXEC msdb.dbo.job_JobName',它应该再次运行exec dbo.SpToExecute一次。您能告诉我如何实现这一目标或我在这里缺少什么吗?

0 投票
4 回答
79971 浏览

c# - 在 c# 4.0 中执行火灾和忘记方法的最简单方法

我真的很喜欢这个问题:

在 C# 中执行火灾和忘记方法的最简单方法?

我只想知道,既然我们在 C# 4.0 中有并行扩展,是否有更好的清洁方法来使用并行 linq 执行 Fire & Forget?

0 投票
2 回答
460 浏览

wcf - WCF“一劳永逸”方法不允许主机执行按预期继续

我有一个 Windows 服务托管一个缓存大量数据的单例 WCF 服务。在启动 Windows 服务时,我正在执行以下操作:

我在服务合同中配置了如下方法:

我原以为会立即看到控制台中显示的第一个和第二个回声,但我实际看到的只是第一个回声。在我的“一劳永逸”方法完成它的长时间操作之前,不会显示第二行。

谁能解释一下后台发生了什么?

到目前为止我的理论:

wcf 服务在单例模式下的运行是否阻塞了托管它的服务?

它与 using 语句有关吗?

0 投票
2 回答
400 浏览

javascript - 如何提高“window.OnBeforeUnload”发送 Ajax ping 的成功率?

我已经阅读了几十个关于 SO 的问题和答案,但没有一个回答我的特定问题......其中大多数都围绕着弹出“哦,你需要保存”消息......这不是我的需要。

我正在我的办公室(不是公共网站)构建一个供内部使用的应用程序,特别是一个“页面”,我们希望记录用户的“退出”。

所以,我有这个简单的声明:

现在,post由于浏览器不“想要”开始一个新请求,因为它知道页面正在消失,所以大部分时间这将失败......但是,如果我添加一个烦人的alert框,那么它会发送 ping 100 % 的时间!!!

例子:

所以,我的问题是......我如何确保(或至少增加拥有)“LogExit.aspx”ping 通过?

0 投票
2 回答
2279 浏览

wcf - WCF 客户端导致服务器挂起,直到连接错误

下面的文字是对这个问题的扩展和添加颜色的努力:

如何防止行为不端的客户取消整个服务?

我基本上有这种情况:WCF 服务启动并运行,客户端回调具有直接、简单的单向通信,与这个没有太大不同:

我从服务到最终将有大约 50 个并发连接的客户端每秒可能数千次调用此方法,并具有尽可能低的延迟(<15 ms 会很好)。这工作正常,直到我在连接到服务器的一个客户端应用程序上设置一个断点,然后在服务挂起大约 2-5 秒后一切都挂起,并且在服务挂起之前大约 30 秒左右没有其他客户端接收任何数据注册连接故障事件并断开有问题的客户端。在此之后,所有其他客户端继续以愉快的方式接收消息。

我已经对 serviceThrottling、并发调整、设置线程池最小线程、WCF 秘诀和整个 9 码进行了研究,但归根结底,这篇文章MSDN - WCF essentials, One-Way Calls, Callbacks and Events 准确地描述了我在没有真正提出建议的情况下遇到的问题。

允许服务安全回调客户端的第三种解决方案是将回调合约操作配置为单向操作。这样做可以使服务即使在并发设置为单线程时也可以回调,因为不会有任何回复消息来争夺锁。

但在本文前面,它仅从客户的角度描述了我所看到的问题

当单向调用到达服务时,它们可能不会一次全部调度,可能会在服务端排队等待一次调度,这一切都取决于服务配置的并发模式行为和会话模式。服务愿意排队多少条消息(无论是单向还是请求-回复)是配置的通道和可靠性模式的产物。如果排队的消息数量超过了队列的容量,那么客户端将阻塞,即使发出单向调用也是如此

我只能假设反之亦然,发送到客户端的排队消息数量已超过队列容量,并且线程池现在充满了试图调用该客户端的线程,这些线程现在都被阻塞了。

处理这个问题的正确方法是什么?我是否应该研究一种方法来检查每个客户端在服务通信层排队的消息数量,并在达到一定限制后中止它们的连接?

几乎看起来,如果 WCF 服务本身在队列填满时阻塞,那么每当一个客户端的队列满时,我可以在服务中实现的所有异步/单向/即发即弃策略仍然会被阻塞。

0 投票
1 回答
2028 浏览

stored-procedures - 使用 Entity Framework 存储过程触发并忘记

我在应用程序中使用实体框架 4.1。其中一项要求是在数据库上执行一些存储过程,其中一些需要相当长的时间。此外,这些存储过程不会返回任何结果,因此我只需要启动它们并忘记它们。

自然,.NET 将等待这些操作完成,因此在一段时间后它会引发“超时期限已过”的异常。

我知道我可以通过将 CommandTimeout 属性设置为更高的值来解决这个问题,但是我正在寻找一种替代解决方案(如果这样的话)。

是否可以使用 Entity Framework 作为 Fire-and-Forget 来执行存储过程?

任何帮助将不胜感激。

问候