【问题标题】:run node scheduler between 9am and 5pm - monday to friday在上午 9 点到下午 5 点之间运行节点调度程序 - 周一到周五
【发布时间】:2015-11-22 03:53:08
【问题描述】:

我有一个简单的 node.js 解析器,它只在工作时间将数据推送到远程服务器,其余时间休眠。

查看可用的模块、时间表和 node-cron (https://github.com/ncb000gt/node-cron) 似乎满足了我的部分要求。

我正在使用 PM2 模块重新启动进程,当它出现故障时

这是我目前在咖啡脚本中的内容:

runParser = (callback) ->
  #...
  console.log 'waking up parser...'
  parseAll()
  return

_jobs = [ {
  name: 'Start parser'
  cronTime: '00 34 16 * * 1-5'
  onTick: runParser
  start: true
  id: 'parsedbf'
  #timeZone: 'Europe/London'
} ]

_cronJobs = {}
schedule = ->
  _jobs.map (job) ->
    _cronJobs[job.id] = new cronJob(job)
    console.log util.format('%s cronjob scheduled at %s on timezone', job.name, job.cronTime)
    return
  return

run = ->
  start = moment('08:30','HH:mm').valueOf()
  now = moment().valueOf()
  end =  moment('18:00','HH:mm').valueOf()
  if start < now and now < end
    runParser()
  else
    schedule(console.info 'scheduler started...')

run(console.info 'sync code statrted after a hard reboot...')

我的问题,我如何更改脚本以使解析器在 18:30 处于空闲状态?

我应该使用 schedule.js (http://bunkat.github.io/schedule/index.html) 如何为此修改代码?

非常感谢任何建议

【问题讨论】:

  • 有什么理由不能在 cron 中运行它吗?你有一个为 cron 标记的问题,它指的是 unix 实用程序,它是用来做这种事情的。您可以使用 cron 和 forever 的组合:一个调用在上午启动它,另一个调用在晚上停止脚本,否则它会连续运行。
  • 实际上,是的,我可以有两个 cron 作业,早上启动 pm2 模块,晚上关闭它。谢谢,我应该保持简单
  • 作为答案发布,请接受:)

标签: node.js coffeescript cron scheduler


【解决方案1】:

你有什么理由不能在 cron 中运行它吗?你有一个为 cron 标记的问题,它指的是 unix 实用程序,它是用来做这种事情的。您可以使用 cron 和 forever 的组合:一个调用在上午启动它,另一个在晚上停止脚本,但否则它会连续运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2014-06-08
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多