【发布时间】:2016-05-04 23:22:44
【问题描述】:
首先,我将解释我的问题:
我正在开发一个电子商务网站。其中一项功能是客户可以创建购买规则。使用这些规则,客户可以设置开始日期、周期和要购买的产品。结果是从[开始日期]开始每隔[周期]天购买产品。
系统以NodeJS为后端,MongoDB为数据库,AngularJS为前端开发。
我发现了一些在 NodeJS 中调度任务的项目。其中两个是:
它们都是很棒的工具,但我对它们两个有同样的问题。问题是我需要创建计划任务并停止它们。使用这些工具非常清楚如何安排一个函数随时间执行,但我怎样才能随时停止它们呢?
node-schedule 和 node-cron 提供的对象有一个 cancel() 或 stop() 方法来停止调度,但要调用该方法我需要拥有该对象。
我的问题是,是否有办法将计划任务“存储”在数据库中,以便能够在任何时候从它们创建的函数以外的任何地方停止它们。
如果这是不可能的,如果有比我提到的更好的工具来做我需要的事情。
非常感谢您的阅读,我们将不胜感激。
【问题讨论】:
-
试试这个议程(github.com/rschmukler/agenda),我没用过,但它可以让你将计划任务保存在选定的数据库中,如 MongoDB 或 redis。另外,为什么你不能创建一个简单的程序来将你的任务保存在数据库中,并创建一个子进程来持续运行、检查和执行你的操作。这只是一个建议。如果你有兴趣,我很乐意贡献,因为,我和其他人可能需要它。无论如何,让我们等待其他人 cmets,他们可能会有所帮助。
-
谢谢!看起来那个包正是我需要的。你让我今天一整天都感觉很好。再次感谢您。
标签: angularjs node.js cron scheduled-tasks scheduling