问题标签 [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.
vector - 范围内的分段错误
在为矢量作业输入输入时,我在函数 ReadData 中遇到分段错误。
即使我在定义大小的范围内,我也会出错。
没有写 AssignJob 函数时一切都很好。
我是否在某些界限上做错了,或者采用非法输入格式或弄乱了其他一些东西?
node.js - Bull Queue如何进行无限尝试?
在他在我的网站上注册后,我正在尝试发送用户电子邮件
我当前的代码看起来像这样
如何将尝试设置为无限?
python - 如何在 HPC 上安装 dask-jobqueue
我正在尝试在高性能计算机 (HPC) 上使用 dask-jobqueue。
按照此处关于 dask-jobqueue 的文档,我正在尝试使用以下代码在 HPC 中的 Jupyter Notebook 实例上安装 dask-jobqueue:
但我收到以下错误:
我不确定我做错了什么,我现在该怎么办?非常感谢任何帮助。
提前谢谢了。
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 被执行后才解决,它仍然位于任务队列中。我听说过,没有任何额外的说明,只有在承诺得到解决的情况下才会运行,从我的输出中我可以看到这是真的,但我不明白在这种情况下它是如何工作的。我唯一能想到的是一个异常或类似的东西,以及一个任务队列任务在微任务之前获得优先级。
这最终很长,所以我感谢任何花时间阅读和回答这个问题的人。我很想更好地了解任务队列、作业队列和事件循环,所以不要犹豫发布详细的答案!先感谢您。
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 进程运行时队列驱动程序不会加载。
知道为什么会发生这种情况吗?谢谢 :)
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 ??
android - 如何在 React Native 中实现作业队列
在我的 React Native 项目中有几个 API 请求,如果设备在请求时没有连接,则应在连接恢复后在后台再次尝试请求。
我为此找到的所有 React Native 库都是旧的且未维护的(react-native-queue 和 react-native-background-task)。有人知道如何实施吗?而且由于它只需要在 Android 上运行,这可以使用 Headless JS 来完成吗?
python - 优雅地等待,直到 redis 队列中的工作完成,而不是忙着等待?
我正在尝试在当前系统中实现一个redis 队列。将job
被发送到另一个模块,它应该等到工作完成并返回结果job.result
,然后继续:
我在这里面临两个问题:
- 忙碌的等待,
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
。
node.js - 议程 JS | 有没有办法更新作业的数据属性?
我正在构建一个服务来使用议程作业/队列生成 PDF ,并希望更新作业的属性,即status
,progress
当处理程序执行代码以生成 PDF 时。
例子:
职位定义:
启动议程作业处理器:
创建/调度作业:
现在随着作业执行的进行,我想更新state
andprogress
但没有任何 API 可以让我这样做。
我尝试按照这里.unique
的建议使用 API,但问题是:
我无法更新特定
data
属性,即status
这样做会删除所有其他属性,即unique_id
,progress
我不能使用我在 unique 中指定的属性作为作业的数据属性
如果其他人遇到这种情况或做过类似的事情,请指出我正确的方向。谢谢你。
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()
锁变量时执行,通过指示当前的承诺已解决并准备处理下一个承诺。在此之前,它会在处理当前项目时循环等待。我的想法是,由于元素总是从头部删除,因此项目将按照输入的顺序进行处理。_isBusy
getNonSequentialResponse
while
错误: 但是,据我了解,这是错误的方法,因为 UI 线程正在等待并导致错误潜在无限循环:超过 10001 次迭代。您可以通过创建一个 sandbox.config.json 文件来禁用此检查。