воскресенье, 10 апреля 2016 г.

Cron в meteor.js при помощи Heroku Scheduler

Идея простая:
  1. В Meteor.methods добавляем нашу задачу (назовем ее task)
  2. Создаем route '/task/:param'
  3. А затем вызываем его через curl.
Код:
# /lib/router.coffee

Router.route '/task/:param', {where: 'server'}
  .post ->
    Meteor.call 'task', @params.param # запускаем метод 'task', ждем выполнения
    this.response.end('done') # возвращаем 'done' когда 'task' выполнится

# /lib/task.coffee (or /server/task.coffee ?)

Meteor.methods
  task: (param) ->
    return if (Meteor.isClient)
    # your code here
Добавляем в хероку аддон Heroku Scheduler. В нем добавляем задачу:
curl -X POST https://our-app.herokuapp.com/task/param-value
Теперь хероку будет по расписанию это запускать, передавая param-value в метод task и возвращать строку 'done' (будет видна через heroku logs).

Комментариев нет:

Отправить комментарий