Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何使用Kue处理预定的重复性作业?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的webapp中,用户可以创建需要生成并在每个月的某些日期发送的定期发票.例如,可能需要在每个月的5号发送发票.

我正在使用Kue处理我所有的后台工作,所以我也想在这种情况下这样做.

我目前的解决方案是使用setInterval()每小时创建一个processRecurringInvoices作业.然后,此作业将从数据库中查找所有定期发票,并为每个定期发票创建单独的generateInvoice作业.

然后,generateInvoice作业将实际生成发票,如果需要,还将创建sendInvoiceToEmail作业,该作业将通过电子邮件发送发票.

目前这个解决方案对我来说很好,因为它有一个很好的关注点,但是,我有以下问题:

>在主processRecurringInvoices工作上调用done()之前,我不确定是否应等待所有’子’作业完成?
>我应该在哪里处理错误?我应该将它们传递给processRecurringInvoices工作,还是应该为每个工作单独处理它们?
>如何确保如果处理需要很长时间(超过一小时),并且processRecurringInvoices或任何子作业仍在运行,则不会再次创建processRecurringInvoices作业?有点像独特的工作,还是互相排斥?

解决方法

>而不是“processRecurringInvoices”,可能更容易将其视为启动其他单独的发票处理工作的工作.通过这种方式考虑,一旦发票处理作业被排队,您就可以安全地在完成任务的工作上调用done(). >按照问题1中描述的方式思考问题,应在每个单独的发票处理工作中处理错误.如果发现潜在发票作业时发生错误,那么可能会在processRecurringInvoices作业中处理. >您可以使用kue.Job.rangeByType()来搜索当前活动的作业.如果作业处于活动状态,您可以跳过再次将其踢掉.

大佬总结

以上是大佬教程为你收集整理的node.js – 如何使用Kue处理预定的重复性作业?全部内容,希望文章能够帮你解决node.js – 如何使用Kue处理预定的重复性作业?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: