问题标签 [queueing]

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

r - RenegeIn 其他轨迹 R(煨包)

我是 R 的新手。

我正在尝试用 simmer 模拟排队。

我想启用 Renege 从“Typhon”到“Tornado”。但是我的代码为“龙卷风”创建了一个新的轨迹,而我需要的只是一个“龙卷风”轨迹。(见下图)。

我的问题是如何使 Renge 进入现有轨迹?(在我的情况下是从“台风”到“龙卷风”)

这是我的代码和情节:

阴谋

0 投票
0 回答
185 浏览

c# - consumer.received 事件处理程序通过 RabbitMQ 获取消息时,如何一一消费消息?

在下面的代码中,_model.BasicConsume 在通过 consumer.received 事件接收到的消息得到消息之前被调用。因此,它从事件触发中清除所有队列项,然后异步触发稍后的事件。如何确保只有通过事件触发器接收到的项目才被队列一一消费,而不是一起消费?

0 投票
1 回答
1207 浏览

node.js - Nodejs - 在限制速率的同时触发多个 API 调用并等待它们全部完成

我的问题

  • 启动 1000 多个在线 API,将 API 调用次数限制为 10 次调用/秒。
  • 等待所有 API 调用返回结果(或重试),API 发送数据可能需要 5 秒
  • 在我的应用程序的其余部分使用组合数据

我在网站上查看许多不同的问题和答案时所做的尝试

使用 promise 等待一个 API 请求

使用 Promise.all 处理所有请求并等待它们完成

到目前为止一切顺利,有点

当我将 API 请求的数量限制为最多 10 个时,它会起作用,因为速率限制器会启动。当我console.log(promises)时,它会返回一个“请求”数组。

我曾尝试在不同的地方添加 setTimeout,例如:

但这似乎不起作用。当我console.log(promises)时,它会返回一个“函数”数组

我的问题

  • 现在我被困住了......有什么想法吗?
  • 当 API 出现错误时,我如何构建重试

感谢您阅读并听到,您已经是我书中的英雄!

0 投票
1 回答
19 浏览

algorithm - 检查队列中的用户:管理优先级的算法?

假设我在队列中有大量用户,我会定期根据速率限制的API 查询每个用户。查询完所有用户后,将重新启动该过程。应用了速率限制,因此我无法在合理的时间内检查所有用户(> 1 天检查每个人)。

每次我检查用户时,我都能检查他们上次活动的时间。如果用户最近很活跃(比如说最近几天),那么他们应该优先于根本不活跃的用户(> 一年)。但是,查询到非活动用户的概率仍然应该大于0。关于如何有效地管理这个队列,是否有任何现有的研究/方法?

目前我在想的是做一个简单的优先级队列,并让用户的初始值是他们最后一次活动的时间。任何时候查询用户时,他们在队列中的位置都会替换为他们最后一次活动的日期 + 从分布中生成的一些随机数,以便最终可以检查所有用户。

0 投票
1 回答
52 浏览

jberet - JBeret 排队机制

我一次收到一堆 csv 文件(例如 200 个),我想通过 JBeret 作业一个接一个地读取和处理这些文件。我将如何配置 JBeret 来实现这一目标?有某种排队机制吗?提前致谢。

0 投票
1 回答
70 浏览

matlab - 如何将矩阵 R 放入循环中并生成矩阵 R> 的新值

我有一个R具有对角矩阵的矩阵0,并且行的总和应始终为 1。如何更新矩阵,使得只有创建的值sum = 1在迭代后才会改变。如何使用 for 循环来做到这一点?

这是我目前的 R。例如,我只想要这些值,0.22013 0.599300.18057通过 for 循环迭代更改为另一个变体。

0 投票
0 回答
140 浏览

oracle - Oracle AQ 使数组出队

美好的一天,各自的!

环境:适用于 Windows 的 Oracle 18XE 64 位。

我有一个关于从持久队列中出列消息数组的问题。这是一个简单的点对点消息传递。队列是“single_consumer”,没有传播。

我注册了我的 PL/SQL 回调函数。我需要知道消息数组的确切大小,以便在每次调用 Oracle AQ 内部作业的回调函数时出列。

我找到了唯一合法的方式来做到这一点。这种方法是使用sys.aq$reg_info的qosflags参数注册回调,该参数 等于 dbms_aq.NTFN_QOS_PAYLOAD。

这是注册 PL/SQL 块:

这是回调过程的声明。这是一个标准声明:

现在,感谢使用dbms_aq.NTFN_QOS_PAYLOAD 初始化的qosflags参数,我的回调函数以这样一种方式注册,即我始终可以在回调会话中看到要出列的消息的实际大小。此大小被评估为descr参数的descr.msgid_array部分的计数大小。如果在注册期间没有将qosflags设置为某个值 - 这部分descr参数对于回调过程调用始终为空。

一旦我知道消息数组的实际大小,我就可以在

在我的回调函数中出列调用。

然后,在调查了 descr 参数的内容后,我在其中发现了一个ntfnsRecdInGrp元素,并确定 ntfnsRecdInGrp始终等于descr.msgid_array.count,并且只是为了程序员的方便,只是为了重复 descr.msgid_array.count

AQ 文档说:

这就是为什么我决定它们在价值上是平等的。这是我的错误。当我使用数组大小​​等于descr.msgid_array.count的回调时——一切正常。使用ntfnsRecdInGrp – 没有。有时descr.msgid_array.countntfnsRecdInGrp 相等,有时不相等。

现在的问题是:

descr 参数的ntfnsRecdInGrp部分是什么意思?

为什么它与msgid_array.count 不同

提前致谢。

0 投票
1 回答
146 浏览

oracle - Oracle dbms_aq.dequeue

美好的一天,各自的!

环境:Windows下的Oracle 18c XE 64位。我有一个简单的点对点队列。队列持久化。单一消费者。你能告诉我:在什么时候必须从队列中删除出列消息?

在我的出队过程中,我不在主事务中进行任何提交。相反,我处理消息并在自主事务中进行提交。像这样的东西:

deq_main 过程中没有 dequeue 进程的提交。但是,消息从队列中删除。这是什么意思?我应该永远不要在 dbms_aq.dequeue 之后提交,还是取决于某些条件?如果视情况而定,您能否澄清一下,在什么情况下我必须明确承诺。

在此先感谢,安德鲁。

0 投票
0 回答
58 浏览

oracle - Oracle AQ 传播 - 与接收者合作的秘诀

各自所有!

最后,我让它工作了。我的意思是使用 recipents list 进行传播,在调用dbms_aq.enqueue时在message_properties参数中明确指定 所以,我们有什么:

环境

  • Oracle XE 18c Windows 64 位
  • 两种模式:STERN 用于源队列,STERN1 用于目标队列。

源队列表:

源队列:

目标队列表:

目标队列:

源队列的订阅者:

请注意:订阅者的名称为 NULL。源队列的传播工作:

传播作业的目标只是一个队列。

目标队列有一个订阅者(至少应该存在一个,否则作业将失败):

当 enqueue 块中没有收件人时,一切正常:

如果有一个收件人,按照 Oracle 文档中指定的格式形成,则作业找不到目的地并永远挂起......

如果有收件人,按照 Oracle 文档中未指定的方式形成,一切正常!

希望这可以帮助。问候,安德鲁。

0 投票
0 回答
97 浏览

oracle - Oracle 流池大小

环境:Linux下的Oracle 12.2 64位EE。

SGA_TARGETSTREAMS_POOL_SIZE都等于 0。

SGA_MAX_SIZE = 180G。

如果我不信任由 Oracle 内部系统进程自动分配的内存量,我可以自信地手动为 STREAMS_POOL_SIZE参数分配什么值而不用担心数据库性能?