【问题标题】:How to do infinite attempts in Bull Queue?Bull Queue如何进行无限尝试?
【发布时间】:2020-10-25 10:49:56
【问题描述】:

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

我当前的代码如下所示

const data = {
      from: 'no-reply@test.com',
      to: req.user.email,
      subject: 'Please reset your Test Account Password',
      text:
        'This is a test email to ask you to reset your Test Account Password. Good luck :)',
    }
    const options = {
      attempts: 1000,
      backoff: { type: 'exponential', delay: 30000 },
      removeOnComplete: true,
    }
    sendMailQueue.add('resetEmail', data, options)

如何将尝试设置为 INFINITE?

【问题讨论】:

  • 如果您尝试发送电子邮件,您可能会遇到多个问题: - 电子邮件可用性(邮箱已满等) - 垃圾邮件过滤器 - 目标 smtp 可用性 所以我会说这是不现实的
  • @hpfs 因此,如果用户注册并且由于某种原因您的电子邮件失败了 5 次,那么该怎么办?根本不确认用户?
  • 这取决于您的政策。如果用户给你一个错误的电子邮件地址怎么办?还是只是打错字了?或者他/她的电子邮件提供商失败了?我认为您可以有两种方法:1.让用户进入并显示他/她尚未验证的横幅并提供更改密码的能力。 2.忽略用户重新注册的问题
  • 抱歉刚刚回车:)
  • 我认为你可以有两种方法:1.让用户进入并显示他/她尚未验证的横幅并提供更改密码的能力。 2.忽略用户重新注册的问题

标签: node.js queue message-queue job-queue bull.js


【解决方案1】:

在生产者中,在创建新任务时设置尝试

const taskOpts = {
    attempts: Number.MAX_SAFE_INTEGER,
}

Client.add(taskType, taskData, taskOpts)

【讨论】:

    猜你喜欢
    • 2021-06-04
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2019-07-28
    • 2021-09-13
    • 2020-03-02
    • 1970-01-01
    相关资源
    最近更新 更多