Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以更新Kue Node.js中已创建的作业?_Javascript_Node.js_Express_Queue_Kue - Fatal编程技术网

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

Javascript 是否可以更新Kue Node.js中已创建的作业?,javascript,node.js,express,queue,kue,Javascript,Node.js,Express,Queue,Kue,我正在利用互联网创造就业机会 每个作业都有延迟时间,通常为3小时 现在,我将检查每个想要创建新作业并获取id的传入请求 从上面的代码可以看出,当我创建作业时,我会将作业id添加到作业中 因此,现在我想用队列中现有作业的作业id检查传入id,如果匹配id,则使用新参数更新现有作业 找到了 因此,每次我的作业队列都将具有唯一的作业id:) 可能吗?我找了很多,但没有找到帮助。我查了一下kue。但是它只能创建和获取检索作业,不能更新现有记录。文档和示例中没有提到这一点,但有一种方法可用于作业 您可以通

我正在利用互联网创造就业机会

每个作业都有延迟时间,通常为3小时

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

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

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

因此,每次我的作业队列都将具有唯一的作业id:)


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

文档和示例中没有提到这一点,但有一种方法可用于
作业

您可以通过以下方式更新作业:
job\u 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();
      }
    });
  });
});
完整的例子是

Update:您也可以考虑使用KUE已知的“本地”作业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();
});

只是想发布一个更新。这张票子回答了我的问题。

您尝试过更新方法吗?在创建作业之前,使用json API获取/job/。如果存在(状态200),则更新作业。如果它不存在(状态404),创建作业。它是否更新“延迟”周期?下面是我的代码,更新前后,延迟保持不变
kue.Job.get( id, function( err, job ) {
  // change job properties
  job.data.title = 'set another title';
  // save changes
  job.update();
});