问题标签 [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 回答
22 浏览

vector - 范围内的分段错误

在为矢量作业输入输入时,我在函数 ReadData 中遇到分段错误。

即使我在定义大小的范围内,我也会出错。

没有写 AssignJob 函数时一切都很好。

我是否在某些界限上做错了,或者采用非法输入格式或弄乱了其他一些东西?

0 投票
1 回答
708 浏览

node.js - Bull Queue如何进行无限尝试?

在他在我的网站上注册后,我正在尝试发送用户电子邮件

我当前的代码看起来像这样

如何将尝试设置为无限?

0 投票
1 回答
93 浏览

python - 如何在 HPC 上安装 dask-jobqueue

我正在尝试在高性能计算机 (HPC) 上使用 dask-jobqueue。

按照此处关于 dask-jobqueue 的文档,我正在尝试使用以下代码在 HPC 中的 Jupyter Notebook 实例上安装 dask-jobqueue:

但我收到以下错误:

我在这里附上了截图: 黎明

我不确定我做错了什么,我现在该怎么办?非常感谢任何帮助。

提前谢谢了。

0 投票
3 回答
872 浏览

javascript - 了解带有承诺、任务和作业队列的异步 JS

我正在研究 JS 中的异步行为,并且大部分情况下进展顺利。我了解执行代码的同步方式,JS的单线程以及诸如setTimeout内部的回调如何由Web浏览器API定时,然后添加到任务队列中。

事件循环会不断地检查调用栈,只有当它为空时(所有同步代码都已执行),它才会取走已经在任务队列中排队的函数。将它们推回调用堆栈并执行。

这很简单,这就是下面代码的原因:

会输出start, end, timeout

现在,当我开始阅读有关 Promise 的内容时,我了解到它们比常规异步代码(例如超时、间隔、事件侦听器)具有更高的优先级,而是被放置在作业队列/微任务队列中。事件循环将首先优先考虑该队列并运行所有作业,直到耗尽,然后再进入任务队列。

这仍然是有道理的,可以通过运行看到:

这输出start, end, promise, timeout. 同步代码执行,then回调从微任务队列推送到堆栈并执行,任务队列中的 setTimeout 回调任务被推送并执行。到目前为止一切都很好。

正如官方文档中所说,我可以围绕上面的例子来回想一下,promise 会立即同步地得到解决。如果我们要使用 new 关键字创建一个 Promise 并提供一个 executor 函数,也会发生同样的情况。该执行器函数将同步执行并解析该函数​​。因此,当遇到 then 时,它可以在已解决的 Promise 上异步运行。

上面的代码片段将输出start, promise 1 log, end, promise 1证明执行器同步运行。

这就是我对承诺感到困惑的地方,假设我们有以下代码:

这将导致start, promise 1 log, end, promise 1. 如果 executor 函数立即执行,这意味着其中的 setTimeout 将被放入任务队列以供稍后执行。据我了解,这意味着承诺现在仍在等待中。我们得到then方法和其中的回调。这将被放入作业队列中。其余的同步代码被执行,我们现在有空的调用堆栈。

据我了解,promise 回调现在将具有优先权,但它如何在仍未解决的 promise 下执行?Promise 应该只在其中的 setTimeout 被执行后才解决,它仍然位于任务队列中。我听说过,没有任何额外的说明,只有在承诺得到解决的情况下才会运行,从我的输出中我可以看到这是真的,但我不明白在这种情况下它是如何工作的。我唯一能想到的是一个异常或类似的东西,以及一个任务队列任务在微任务之前获得优先级。

这最终很长,所以我感谢任何花时间阅读和回答这个问题的人。我很想更好地了解任务队列、作业队列和事件循环,所以不要犹豫发布详细的答案!先感谢您。

0 投票
0 回答
18 浏览

laravel - Laravel8上的supervisorctl处理作业队列问题

当我在命令下运行时,过程就好了:

php artisan queue:work

但是当 supervisorctl 进程在实时服务器上运行时。队列工作者收到错误。

Trying to access array offset on value of type null at */vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php:156

配置对我来说似乎是正确的,因为队列在运行时工作php artisan queue:work。由于某种原因,在 supervisorctl 进程运行时队列驱动程序不会加载。

知道为什么会发生这种情况吗?谢谢 :)

0 投票
1 回答
26 浏览

sharepoint - can i create a web application to make an automatic data exchange between azure sql and sharepoint online?

i would like to create a web application to make an automatic data exchange between azure sql and sharepoint online,but I don’t know how ,have you an ideas guys ??

0 投票
0 回答
269 浏览

android - 如何在 React Native 中实现作业队列

在我的 React Native 项目中有几个 API 请求,如果设备在请求时没有连接,则应在连接恢复后在后台再次尝试请求。

我为此找到的所有 React Native 库都是旧的且未维护的(react-native-queue 和 react-native-background-task)。有人知道如何实施吗?而且由于它只需要在 Android 上运行,这可以使用 Headless JS 来完成吗?

0 投票
1 回答
485 浏览

python - 优雅地等待,直到 redis 队列中的工作完成,而不是忙着等待?

我正在尝试在当前系统中实现一个redis 队列。job被发送到另一个模块,它应该等到工作完成并返回结果job.result,然后继续:

我在这里面临两个问题:

  1. 忙碌的等待,while job.result is None需要很长时间。我的处理时间worker_func约为 2-3 秒,其中涉及在另一台服务器上调用 API,但繁忙的等待while job.result is None本身又需要 >= 3 秒,总共增加了 >= 5 秒。我很肯定等待发生在执行之后,while job.result is None因为我为worker_func和都添加了日志while job.result is None

正如你在上面看到的,忙等待循环发生在worker_func完成之后。

2、有没有其他优雅的方式来实现这个同步等待而不是忙循环?我认为这里的繁忙循环绝对不是最好的实现,因为它会消耗大量的 CPU 资源。

谢谢!

-- 编辑我上面的代码以提供更清晰的上下文

我需要从调用next_step_func(job.result)位置返回的值。job_queue.enqueue所以更清晰的结构是:

所以痛点是我需要job.result能够返回endpoint(),但是 Job Callback 会将我的工作带到不同的环境中on_success

0 投票
0 回答
154 浏览

node.js - 议程 JS | 有没有办法更新作业的数据属性?

我正在构建一个服务来使用议程作业/队列生成 PDF ,并希望更新作业的属性,即statusprogress当处理程序执行代码以生成 PDF 时。

例子:

职位定义:

启动议程作业处理器:

创建/调度作业:

现在随着作业执行的进行,我想更新stateandprogress但没有任何 API 可以让我这样做。

我尝试按照这里.unique的建议使用 API,但问题是:

  • 我无法更新特定data属性,即status这样做会删除所有其他属性,即unique_idprogress

  • 我不能使用我在 unique 中指定的属性作为作业的数据属性

如果其他人遇到这种情况或做过类似的事情,请指出我正确的方向。谢谢你。

0 投票
1 回答
152 浏览

asynchronous - 使用 React 实现顺序作业队列

我正在寻求实现一个作业队列,以确保即使每个 API 调用都可能花费可变的时间,也可以按照输入的输入项的顺序返回来自 API 的响应。

请参阅此处的代码和框https://codesandbox.io/s/sequential-api-response-eopue - 当我item在输入字段中输入诸如1、12、1234、12345 并按Enter 时,它会转到我返回的模拟后端item+-response表示相应输入的输出。但是,我在每次调用时使用了不同的超时时间Math.random()来模拟 API 可能花费不确定时间的真实场景。

电流输出

预期输出 我想看到的输出是

我的尝试: 我试图实现该函数(它是对生成上述错误输出getSequentialResponse的函数的包装)。getNonSequentialResponse此函数将item用户输入的内容添加到 aqueue中,并且仅在释放queue.shift()锁变量时执行,通过指示当前的承诺已解决并准备处理下一个承诺。在此之前,它会在处理当前项目时循环等待。我的想法是,由于元素总是从头部删除,因此项目将按照输入的顺序进行处理。_isBusygetNonSequentialResponsewhile

错误: 但是,据我了解,这是错误的方法,因为 UI 线程正在等待并导致错误潜在无限循环:超过 10001 次迭代。您可以通过创建一个 sandbox.config.json 文件来禁用此检查。