gpt4 book ai didi

javascript - 是否可以在 Kue Node.js 中更新已创建的作业?

转载 作者:IT老高 更新时间:2023-10-28 23:10:49 27 4
gpt4 key购买 nike

我正在使用 Kue 创建工作.

jobs.create('myQueue', { 'title':'test', 'job_id': id ,'params':  params } )
.delay(milliseconds)
.removeOnComplete( true )
.save(function(err) {
if (err) {
console.log( 'jobs.create.err', err );
}

});

每个作业都有延迟时间,一般是3小时。

现在我将检查每个想要创建新作业并获取 id 的传入请求。

从上面的代码可以看出,当我创建一个作业时,我会将作业ID添加到作业中。

所以现在我想用队列中现有作业的 job_id 检查传入 id,如果匹配的 id 则使用新参数更新现有作业找到了。

所以我的作业队列每次都会有唯一的 job_id :)。

有可能吗?我搜索了很多,但没有找到任何帮助。我查了kue JSON API .但它只能创建和获取检索作业,不能更新现有记录。

最佳答案

这在文档和示例中没有提到,但是有一个 update job 的方法。

您可以通过 job_id 以这种方式更新您的工作:

// you have the job_id
var job_id_to_update = 1;
// get delayed jobs
jobs.delayed( function( err, ids ) {
ids.forEach( function( id ) {
kue.Job.get( id, function( err, job ) {
// check if this is job we want
if (job.data.job_id === job_id_to_update) {
// change job properties
job.data.title = 'set another title';
// save changes
job.update();
}
});
});
});

完整的例子是here .

更新:您还可以考虑使用以 kue 闻名的“ native ”作业 ID。创建作业时可以获取作业id:

var myjob = jobs.create('myQueue', ...
.save(function(err) {
if (err) {
console.log( 'jobs.create.err', err );
}
var job_id = myjob.id;
// you can send job_id back to the client
});

现在您可以直接修改作业而无需遍历列表:

kue.Job.get( id, function( err, job ) {
// change job properties
job.data.title = 'set another title';
// save changes
job.update();
});

关于javascript - 是否可以在 Kue Node.js 中更新已创建的作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34919808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com