在上午9点到下午5点之间运行节点调度程序 - 星期一到星期五

时间:2015-08-27 16:29:21

标签: node.js coffeescript cron scheduler

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

查看可用的模块,schedule和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)如何为此修改代码?

任何建议非常感谢

1 个答案:

答案 0 :(得分:0)

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