添加到Bull队列后,对象不再是Class的实例

尼尔

handler我的Fastify路线的中,我将一个类的对象添加到Bull队列中。在队列的process方法中,此对象不再是类的实例。这是正常现象还是我缺少一些(或很多)基础知识?

const fastify = require('fastify')({ logger: true })
const Queue = require('bull');
let addQueue = new Queue('Add', 'redis://127.0.0.1:6379');

...

addQueue.process(function(job, done){
  console.log(job.data.dataObj instanceof ClasssDefinedSomwhereElse);
}

...

fastify.route({
  method: 'POST',
  url: '/',
  ...
  handler: async (request, reply) => {
    if(isFirstRequest) {
      classObj = new ClasssDefinedSomwhereElse();
      isFirstRequest = false;
    } else {
      console.log(classObj instanceof ClasssDefinedSomwhereElse);
      addQueue.add({dataObj: classObj});
    }

addQueue.add({dataObj: classObj});addQueue.add(classObj);没有区别。handler打印true&的process方法打印false为什么是这样?

我最终想要做的是在该process方法中,使用刚刚传入的对象调用该类的方法。我不是来自Javascript背景,所以我认为我可能错过了一些基本的知识。任何帮助表示赞赏。

曼努埃尔·斯皮戈隆(Manuel Spigolon)

在javascript中,classclass在面向对象编程中不同。该类只是语法糖prototype

因此,您的软件中发生的是:

  • 向牛市队列添加类实例
  • Bull将在redis中序列化对象(取决于toString()实现)
  • Bull将在异步队列中运行,从redis提取字符串数据并将其解析为一个对象(例如运行JSON.parse(aJsonString)

在此过程中,没有关于的信息ClasssDefinedSomwhereElse(就像在Java中的类序列化中那样)。因此,您需要根据Bull正在获取的简单JSON创建该类的新实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将__call__方法添加到实例后,对象“不可调用”

来自分类Dev

将对象添加到优先级队列时,“在‘元组’和‘列表’的实例之间不受支持”

来自分类Dev

将对象添加到区域设置或SimpleUniverse后,将对象添加到BranchGroup

来自分类Dev

如何将实例对象的元素添加到arraylist?

来自分类Dev

使用LinkedList集合将实例变量添加到对象

来自分类Dev

添加到关系后在coredata中找不到对象

来自分类Dev

在创建时或创建后将对象添加到列表

来自分类Dev

Terraform:将消息添加到队列

来自分类Dev

将项目添加到队列末尾

来自分类Dev

如何在输入读取后将扫描仪输入添加到队列并退出循环

来自分类Dev

NullReferenceException对象引用未设置为对象的实例。添加到模型

来自分类Dev

对于循环,多个对象实例化并将对象添加到ArrayList问题

来自分类Dev

javascript如何在创建对象后将新对象添加到对象中

来自分类Dev

通过Terraform创建RDS实例后,将Postgresql角色添加到数据库

来自分类Dev

将相同的月数添加到两者后更改 DateTime 实例的顺序

来自分类Dev

将对象添加到数据库后访问对象属性

来自分类Dev

$.get() 方法后不再是二维列表

来自分类Dev

将实例添加到Azure网站

来自分类Dev

C ++-在循环中实例化将对象添加到std :: vector

来自分类Dev

如何使用反射将对象添加到类的实例的泛型列表属性中

来自分类Dev

实例化对象会自动添加到SQLAlchemy Session中。为什么?

来自分类Dev

相同类的实例化对象是否添加到内存(C#)中?

来自分类Dev

“ TypeError:散布不可迭代实例的无效尝试”:将数组或对象添加到数组

来自分类Dev

如何将类的实例添加到JavaScript对象中?

来自分类Dev

在方法中实例化并添加到C#中Collection的对象的持久性

来自分类Dev

如何将连续的数字标识符添加到对象的新实例?

来自分类Dev

将同一对象的多个实例添加到阶段

来自分类Dev

为什么类外部包含的模块将实例方法添加到类的对象

来自分类Dev

如何将通用实例添加到通用对象列表中

Related 相关文章

  1. 1

    将__call__方法添加到实例后,对象“不可调用”

  2. 2

    将对象添加到优先级队列时,“在‘元组’和‘列表’的实例之间不受支持”

  3. 3

    将对象添加到区域设置或SimpleUniverse后,将对象添加到BranchGroup

  4. 4

    如何将实例对象的元素添加到arraylist?

  5. 5

    使用LinkedList集合将实例变量添加到对象

  6. 6

    添加到关系后在coredata中找不到对象

  7. 7

    在创建时或创建后将对象添加到列表

  8. 8

    Terraform:将消息添加到队列

  9. 9

    将项目添加到队列末尾

  10. 10

    如何在输入读取后将扫描仪输入添加到队列并退出循环

  11. 11

    NullReferenceException对象引用未设置为对象的实例。添加到模型

  12. 12

    对于循环,多个对象实例化并将对象添加到ArrayList问题

  13. 13

    javascript如何在创建对象后将新对象添加到对象中

  14. 14

    通过Terraform创建RDS实例后,将Postgresql角色添加到数据库

  15. 15

    将相同的月数添加到两者后更改 DateTime 实例的顺序

  16. 16

    将对象添加到数据库后访问对象属性

  17. 17

    $.get() 方法后不再是二维列表

  18. 18

    将实例添加到Azure网站

  19. 19

    C ++-在循环中实例化将对象添加到std :: vector

  20. 20

    如何使用反射将对象添加到类的实例的泛型列表属性中

  21. 21

    实例化对象会自动添加到SQLAlchemy Session中。为什么?

  22. 22

    相同类的实例化对象是否添加到内存(C#)中?

  23. 23

    “ TypeError:散布不可迭代实例的无效尝试”:将数组或对象添加到数组

  24. 24

    如何将类的实例添加到JavaScript对象中?

  25. 25

    在方法中实例化并添加到C#中Collection的对象的持久性

  26. 26

    如何将连续的数字标识符添加到对象的新实例?

  27. 27

    将同一对象的多个实例添加到阶段

  28. 28

    为什么类外部包含的模块将实例方法添加到类的对象

  29. 29

    如何将通用实例添加到通用对象列表中

热门标签

归档