你如何实现定期执行的工作?

Posted

技术标签:

【中文标题】你如何实现定期执行的工作?【英文标题】:How do you implement periodically executing job? 【发布时间】:2014-07-12 20:36:58 【问题描述】:

我最近正在实施一个自动回复包含任意主题标签的推文的系统。该系统由一个定期抓取 Twitter 的进程和一个定期回复这些推文的进程组成。按照我公司的传统,这些定期作业是通过 RDMS 上的工作表实现的,这些工作表有一个状态列,其值为“等待”、“处理”或“成功”。为了确保冗余,我通过利用低级锁来运行多个相同的进程。

我的问题是,我正在使用 RDMS 中的工作表定期实施作业,这些作业通常是如何实施的。

【问题讨论】:

【参考方案1】:

有一个节点包cron,它允许您以某个指定的时间间隔执行代码,就像crontab。这是包的链接:https://www.npmjs.org/package/cron

例如:

var cronJob = require("cron").CronJob;

// Run this cron job every Sunday (0) at 7:00:00 AM
new cronJob("00 00 7 * * 0", function() 
    // insert code to run here...
, null, true);

您也许可以使用该模块定期运行某些作业,该作业会抓取 Twitter 或回复推文。

【讨论】:

除了可以控制函数何时执行之外,这个方案相对于原生setInterval还有其他好处吗? 我也有同样的兴趣,所以为你找到了这个:***.com/questions/18120909/…

以上是关于你如何实现定期执行的工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何过渡到微服务架构

如何实现 Paypal 定期支付 API 以及买家通过信用卡/借记卡 php 支付的选项? [关闭]

如何使用动态金额实现 PayPal 定期付款?

如何安排脚本定期运行?

如何定期使用多线程获取服务器状态

如何用shell来实现定期删除一个月前的日志?