问题标签 [worker]

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 投票
1 回答
750 浏览

c# - System.Timers.Timer 在 Azure Worker Role 中徘徊

我有一个带有 n(当前 n = 2)个实例的 Azure Worker Role。这些实例中的每一个在其主线程上都有一个 System.Timers.Timer,每 20 秒执行一次,产生一些工作进程。当角色实例最初启动时,它们通过内部端点同步自己,以便计时器同时启动(这有效)。

在甚至一天的过程中,这两个具有相同间隔的计时器往往会徘徊 - 一个最终会比过去早几秒钟开始,另一个可能会朝着相同的方向,或者更糟糕的是,另一个。

我的运行方法基本上如下:

问题:

  1. 这可能是什么原因造成的?
  2. 向 while(true){} 循环添加 Thread.Sleep(sleeptimeinMS) 调用是否会通过防止主线程一直处于忙碌状态来改善这一点(以允许计时器线程以某种方式更自由地履行其职责?)?
  3. 我应该尝试定期将角色重新同步到某个外部时钟是正确的答案吗?
  4. 有什么完全不同的方法来实现这个吗?

在此先感谢您的时间,

亚历克斯

0 投票
1 回答
3279 浏览

high-availability - HA gearman 作业服务器的最佳实践是什么

从 gearman 的主页上,他们提到运行多个作业服务器,所以如果一个作业服务器死了,客户端可以选择一个新的作业服务器。鉴于下面的陈述和图表,作业服务器似乎不相互通信。

我们的问题是那些在死掉的作业服务器中排队的作业会发生什么?为这些服务器提供高可用性以确保作业不会因故障而中断的最佳实践是什么?

您可以运行多个作业服务器,并让客户端和工作人员连接到他们配置的第一个可用作业服务器。这样,如果一个作业服务器死机,客户端和工作人员会自动故障转移到另一台作业服务器。您可能不想运行太多的作业服务器,但拥有两三个是冗余的好主意。

在此处输入图像描述

资源

0 投票
1 回答
189 浏览

asp.net - 在 Visual Studio 中复制 IIS 多个工作进程

我们有一个网站,该网站设置为在 IIS 中处理多个工作进程。在加载某个页面时,我们会收到经典的“对象未设置为对象的实例”错误。我想尝试在 Visual Studio 中复制它,有没有办法设置 Visual Studio,以便它像在 IIS 中一样有效地在多个工作进程上运行?

0 投票
3 回答
3774 浏览

c# - 填充 UI 时显示请稍候动画

我正在用 C# 编写一个 WinForms 窗口,它显示大约 12 个ListBox和 6 个ComboBox控件,每个控件有几百到几千个项目。

填充这些需要一点时间。没多久——只有几秒钟,但用户可以看到一些东西是件好事,这样他们就知道程序在等待时正在后台运行。

我有一个通用的“请稍候”动画无边框最顶层窗口,在发生这种情况时会出现,但是我在动画方面遇到了问题。

对于大多数需要一点时间的任务,我通过以下方式解决这个问题:

它工作得很好。有时线程中的东西需要调用某些东西,这有时会导致动画中的小问题,但这通常没什么大不了的。

然而,对于这种形式,线程中的整个代码都是 UI 代码:填充 ListBoxes 和 ComboBoxes。这意味着所有内容都必须包含在 Invoke 块中,这没有任何意义,因为首先让它在单独的线程中运行是没有意义的。

除了为这种特殊情况废弃整个工作线程并Application.DoEvents()在每个循环中插入大约一百个左右的插入之外,我还能做些什么来让工作动画在控件被填充时继续?

0 投票
1 回答
4436 浏览

c - 简单 MPI 发送/接收程序中的行为不明确

一段时间以来,我的代码中一直存在错误,但还不知道如何解决它。

我想要实现的目标很简单:每个工作节点(即等级为 0 的节点)在涉及一些计算的方形结构中都有一行(由一维数组表示)。计算完成后,该行将被发送回主服务器。

出于测试目的,不涉及计算。正在发生的一切是:

  • master 将行号发送给 worker,worker 使用行号来计算相应的值
  • worker 将带有结果值的数组发回

现在,我的问题是:

  • 对于一行中的元素数量(大小 = 1006)和工人数量 > 1,所有工作都按预期工作,直到达到一定大小
  • 如果一行中的元素超过 1006,worker 无法关闭并且程序不会终止
  • 仅当我尝试将数组发送回主机时才会发生这种情况。如果我只是简单地发回一个 INT,那么一切正常(参见 doMasterTasks() 和 doWorkerTasks() 中的注释行)

基于最后一个要点,我假设必须存在一些竞争条件,只有当要发送回主节点的数组达到一定大小时才会出现。

你知道问题可能是什么吗?

编译以下代码: mpicc -O2 -std=c99 -o simple

像这样运行可执行文件: mpirun -np 3 simple <size>(例如 1006 或 1007)

这是代码:

任何帮助是极大的赞赏!

最好的,克里斯

0 投票
3 回答
4325 浏览

java - Java 性能进程与线程

我正在用 Java 实现一个工作池。

这本质上是一个完整的对象负载,它们将拾取数据块,处理数据,然后存储结果。由于 IO 延迟,worker 的数量将明显多于处理器内核。

服务器专门用于此任务,我想从硬件中获得最大性能(但不,我不想在 C++ 中实现它)。

最简单的实现是拥有一个创建和监视多个工作线程的 Java 进程。另一种方法是为每个工作人员运行一个 Java 进程。

假设为了争论一个四核 Linux 服务器,您预计这些解决方案中的哪个解决方案性能更高,为什么?

你可以假设工人永远不需要相互交流。

0 投票
1 回答
765 浏览

php - 从 PHP 应用程序使用 gearman 而不安装 PHP 扩展

我有兴趣使用 Gearman 服务器在我的 PHP 应用程序中分发长时间运行的作业。不幸的是,我无法直接访问我的应用程序服务器,也无法安装任何 PECL 扩展。

有没有我可以使用的纯 PHP 客户端库?

0 投票
1 回答
944 浏览

php - 将 Net_Gearman 与 codeigniter 项目一起使用

我已经使用 Codeigniter 构建了一个应用程序,现在我想使用 Gearman 作业队列服务器来处理一些长时间运行的任务。我正在使用 Net_Gearman PEAR 库(安装模块不太理想,但不幸的是我无法在我的服务器设置上安装其他模块)。是否有任何好的教程或指南来实现将这个库与 codeigniter 集成的最佳实践方式?也许甚至是为codeigniter定制的库?谢谢!

0 投票
1 回答
1306 浏览

php - 通过 CLI 运行 CodeIgniter 脚本 - 缺少 CI 超级对象方法

我有一个 CodeIgniter 项目,我想通过 CLI 调用我的控制器方法之一,但是附加到 CI 超级对象的正常属性和方法似乎丢失了?

例如,运行以下在正常 http 请求期间运行良好的脚本会产生错误:

这是通过 CLI 返回的错误

我这样调用脚本: $ php index.php worker test

编辑

此外,此脚本:

回报:NULL

0 投票
1 回答
98 浏览

php - Net_Gearman 从工作函数中访问 job_id?

我正在尝试从我的工作函数中访问当前作业的 job_id,以便我可以将结果保存到与当前工作函数相等的键下的 memcached。有没有办法做到这一点?