问题标签 [job-queue]

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

java - 在 android-priority-jobqueue 中检索当前活动作业列表

我想知道是否有推荐的方法来检索https://github.com/yigit/android-priority-jobqueue中的活动作业列表

这样一来,如果我还有持久性工作仍在等待,我可以让用户知道哪些工作。

0 投票
2 回答
12552 浏览

javascript - node.js 的类似 Sidekiq 的良好作业系统是什么?

(这里提出的关于这个主题的大多数问题都有点老了,我想知道这些年来 Node 生态系统发生了什么变化。)

我基本上希望在我的 node.js 应用程序中实现一个作业队列。我听说过并看到过 Sidekiq 在 Ruby 世界中的应用以及它所做的工作有多棒,并且想知道 node.js 中是否存在类似的东西。

Workers 将用 Javascript 编写,因此它不必是多语言的(如果是的话那就太好了,但绝对不是必需的)。

一个很大的优点是可视化当前正在运行的作业、失败的作业等的简单方法。

你们都用什么?您知道哪些符合这些要求的库/服务?

0 投票
0 回答
55 浏览

java - Google App Engine 的不一致和愤怒的行为

我有一个在 Google App Engine 上运行的 Java 应用程序,其 SDK 版本为 1.9.36。该应用程序运行 Java 7,可以访问 Datastore、BigQuery 和 Cloud Storage。该容器是一个 B8 类后端服务器,任务由接收 servlet 提交,该 servlet 进行一些基本检查,然后提交一个 TaskQueue 条目。

我面临的问题是应用程序只是停止响应。使用 JobQueue 从 BigQuery 表中读取数据。在检查作业状态从 RUNNING 变为 DONE 时,应用程序只是停止记录和处理。此等待迭代次数以及应用程序停止的位置会有所不同。

它不一致,因此无法将其固定到特定的代码段。

有些日子,应用程序运行几天都没有问题,有一天我什至不能不停地完成一次迭代。

表中的数据在 600 到 6000 行之间变化。我一次读取 2000 行。

有时它会到达“工作完成 - 让处理结果”部分,然后简单地停止。有时它会记录几条 RUNNING 消息然后停止。

这是我设置作业参数然后开始作业的部分。我在 do{}while 循环中省略了代码。那只是处理位,但工作正常。问题似乎在于在某处检索数据。

查看 AppEngine 控制台时,它仍然显示实例正在运行,但显示已处理请求的图表也停止了。

任何有类似经历的人在没有代码更改或重新部署的情况下行为如此反复无常?

0 投票
1 回答
741 浏览

java - 通过 Java jt400 的 AS400 作业队列

我只是在 java 应用程序和 AS400 之间编写一个接口。为此,我使用 jt400。我设法获取有关系统状态的信息,例如 CPU 使用情况,以及我设法接收有关子系统和作业的当前状态。

现在我正在寻找一个选项来查看 AS400 内部的不同作业队列。

例如:我想知道,哪个队列中有多少作业。

是否有通过 jt400 的解决方案或通过 java 访问这些信息的不同方法?

AS400里面对应的命令是WRKJOBQ

最佳 LStrike

[编辑]

以下代码是我对 JobList 的过滤器。但是如何配置与 WRKJOBQ 匹配的 QSYSObjectPathName?

0 投票
2 回答
2778 浏览

android - VolleyError:java.lang.IllegalArgumentException:超时 < 0

我正在使用 [Jobqueue] 库使用同步请求与 Volley。一切正常,但经过很长时间或在不确定的时间后执行大量请求后,我收到此错误:

这个错误很奇怪,因为一旦我收到这个错误,请求就不再起作用了。我尝试了很多事情,例如每个作业都有一个 RequestQueue 而不是应用程序实例 RequestQueue、取消所有作业以及重置 RequestQueue 中的作业和请求。

这是我如何将同步请求与 Volley 一起使用的示例:

我忘了评论每个请求都有 15 秒的超时时间,并且 volley 中的最大重试次数为 0。

任何的想法?

0 投票
1 回答
410 浏览

ibm-midrange - 找出运行 RPG 程序的 JOBQ。AS400

在 RPG 程序中是否有办法找出该程序在哪个 JOBQ 上运行?我问这个是因为有一个可以调用或提交的程序,我有兴趣保存该程序运行的时间戳用户和 jobq 的日志。

提前致谢

0 投票
1 回答
184 浏览

c# - 通过触摸基于任务的异步模式 (TAP) 的 Windows 服务作业监视器

我正在用 C# 构建一个 Windows 服务,它将监视一个作业队列,当它发现队列中可用的项目时,它会启动将“完全”处理该作业(包括失败)的作业。我正在使用 Task.Factory.StartNew() 并且不可否认,我在 TAP 中非常熟悉(在完成这篇文章后开始阅读博客)。

要求

  1. 定期轮询数据库队列以查找可用作业。(为了这个问题,让我们忽略消息队列与数据库队列的论点)

  2. 异步启动作业,以便轮询可以继续监视队列并启动新作业。

  3. 遵守“工作”阈值,以免产生太多工作。

  4. 如果正在处理作业,则“延迟”关闭服务。

  5. 确保将作业中的失败记录到事件日志中,并且不会使 Windows 服务崩溃。

我的代码在下面,但这是我的问题/疑虑(如果有更好的地方发布这个,请告诉我)但这主要围绕正确使用 TAP 和它的“稳定性”。请注意,我的大多数问题也都记录在代码中。

问题

  1. 在 PollJobs 中,我使用 Task.Factory.Start/ContinueWith 的方式是否适当地使用此作业处理服务来保持高吞吐量?我永远不会阻塞任何线程,并希望为我目前拥有的一小部分 TAP 使用正确的模式。

  2. ConcurrentDictionary - 使用它来监视当前正在运行的作业,并且每个作业在完成时都会从字典中删除自己(在我假设来自 Task.Factory.StartNew 的单独线程上),因为它是 ConcurrentDictionary,我假设我不需要任何使用时会在任何地方锁定吗?

  3. 作业异常(最糟糕的是 OutOfMemoryException) - 作业处理过程中的任何异常都无法关闭服务,并且必须正确记录在事件日志和数据库队列中。目前有些工作很遗憾会抛出 OutOfMemoryException。“作业处理”中的 try/catch 是否足以捕获和处理所有场景,以便 Windows 服务永远不会意外终止?或者为每个作业启动一个 AppDomain 以实现更多隔离会更好/更安全吗?(过度杀戮?)

  4. 我已经看到争论使用“正确”计时器的争论没有像样的答案。对我的 System.Threading.Timer 的设置和使用有何意见?(特别是关于我如何确保在上一次调用完成之前永远不会再次调用 PollJobs)

如果你已经做到了这一步。提前致谢。

代码

0 投票
0 回答
171 浏览

python - Python UDP二进制数据到作业队列

我打算用处理包含二进制数据的传入 UDP 数据报的 Python 替换一个简单的 Perl 脚本(太慢),出于性能原因,我不想立即处理二进制数据,而是将其传递给类似于作业队列的东西,然后将通过消费者处理数据以进行 uu 编码并将其写入数据库、文件等。

我的理解是,大多数作业队列、memcached 等都需要文本数据,而不是二进制数据。有没有一种简单的方法可以将二进制数据报数据传递到作业队列或其他东西以供稍后处理,而无需先进行转换?

0 投票
6 回答
11994 浏览

javascript - “事件循环队列”和“作业队列”有什么区别?

我无法理解以下代码是如何运行的。为什么“1”在“b”之后,而“h”在“3”之后?顺序应该是:a、b、1、2、h、3?有文章说“事件循环队列”和“作业队列”的区别导致如下输出。但是怎么做?我已经阅读了ECMAScript 2015 - 8.4 Jobs and Job Queues的规范,想知道 Promise'job 是如何工作的,但这让我更加困惑。有人能帮我吗?谢谢!

我知道 Promise 是异步的,但是 setTimeout(..) 异步操作的回调总是在 Promise 的异步操作之后。为什么?

0 投票
1 回答
2020 浏览

node.js - 如何在nodejs中管理队列?

我在 Nodejs 中编写了一个脚本,用于截取网站的屏幕截图(使用slimerJs),这个脚本大约需要 10-20 秒才能完成,这里的问题是服务器在这个脚本完成之前停止。

由于该脚本会在内存中生成一个 firefox 浏览器并加载网站,因此 ram 使用量可能会飙升至 600-700mb,因此我无法异步执行此命令,因为 ram 在服务器上很昂贵。

我可以知道是否可以对传入的请求进行排队并以 FIFO 方式执行它们?

我尝试检查 kue、bull 和 bee-queues 等软件包,但我认为这些都假设工作列表在队列开始之前就已经知道,因为我的工作列表取决于使用该网站的用户,我还想告诉人们他们在排队,需要等待轮到他们。上述软件包可以做到这一点吗?