- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
首先,我会解释我的问题:
我正在开发一个电子商务网站。它的功能之一是客户可以创建购买规则。通过这些规则,客户可以设置开始日期、周期和要购买的产品。结果是,从[开始日期]开始,每隔[周期]天就会购买该产品。
系统采用NodeJS作为后端、MongoDB作为数据库、AngularJS作为前端开发。
我发现了一些在 NodeJS 中调度任务的项目。其中两个是:
它们都是很棒的工具,但我对它们有同样的问题。问题是我需要创建计划任务并停止它们。有了这些工具,如何安排一个函数随着时间的推移执行就很清楚了,但是我怎样才能随时停止它们呢?
node-schedule 和 node-cron 提供的对象有一个 cancel() 或 stop() 方法来停止调度,但要调用该方法,我需要拥有该对象。
我的问题是是否有一种方法可以将计划任务“存储”在数据库中,以便能够随时从创建它们的函数之外的任何地方停止它们。
如果这是不可能的,是否有比我提到的工具更好的工具来完成我需要的事情。
非常感谢您的阅读,如有任何帮助,我们将不胜感激。
最佳答案
好吧,我找到了一个比添加一堆计划任务(一个用于购买规则)更好的解决方案来解决我的问题。现在我的purchasing_rules表看起来像这样:
+--------------------+
| purchase_rules |
+--------------------+
| customer_id |
| product_id |
| quantity |
| start_date |
| periodicity (Days) |
+--------------------+
我的解决方案是在下次运行时添加该字段,因此我的表格将如下所示:
+--------------------+
| purchase_rules |
+--------------------+
| customer_id |
| product_id |
| quantity |
| start_date |
| periodicity (Days) |
| next_run |
+--------------------+
默认情况下,[next_run] 将为 [start_date] + [periodictiy]。
现在,魔法:
我将使用node-schedule每天在特定时间安排工作。该作业将执行以下操作:
这样,数据库将不会像议程包那样被访问多次,并且为了“停止”购买规则,我只需将其从数据库中删除即可。
我希望有一天有人会发现这很有用。
关于angularjs - NodeJS 周期性任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35047011/
我已经完成了创建和启动计时器的手册页。 http://man7.org/linux/man-pages/man2/timerfd_create.2.html 但是,除了 arm(start) 和 di
我正在用 opengl 编写新的代码库,很早就遇到了一个奇怪的错误。这是帧速率的明显波动,具有重复性和可预测性。 我知道它肯定与渲染的对象成正比。它也与屏幕大小成正比(不是视口(viewport)大小
我知道如何使用计算数组中点之间的欧几里得距离 scipy.spatial.distance.cdist 类似于这个问题的答案: Calculate Distances Between One Poin
我想使用 CGAL 构造周期性 3D Delaunay 三角剖分和信息(在本例中为整数)。对于 2D,如果我构造一个 vector 对(点,信息)并将其传递给三角测量函数,则效果很好。然而,非常类似的
每隔几天,我们就会收到少量 MySql 超时错误,这些错误与我们的 MySQL RDS 实例上的 CPU 和数据库连接出现大量峰值相对应。这些查询通常非常快(<5 毫秒),但突然超时。 此时,数据库操
我是一名优秀的程序员,十分优秀!