С помощью cron для вызова http-действия, такого как curl или wget, вы планируете http-запрос, а затем http-запрос приводит к выполнению действия php, и в коде этого действия у вас есть некоторая работа / логика, которая происходит.
С помощью планировщика heroku вы пропускаете все HTTP-запросы и действия и можете напрямую поместить логику / работу в задачу rake (или поместить ее в обычный класс или модель ruby и вызвать ее из тела задачи). .
Это работает, потому что задача rake загружает всю среду rails (это делает часть зависимости от среды определения задачи), поэтому внутри тела задачи rake у вас есть доступ к моделям приложений rails, требуемым гемам, приложению конфигурация, все - как внутри контроллера или модели в рельсах.
Что также хорошо, если вы находитесь на кедре, так это то, что планировщик вызывает задачи в одноразовом экземпляре динамо, поэтому основное динамо вашего приложения не занято задачей, запускаемой планировщиком, что не так, когда вы используйте шаблон действий cron -> http request -> controller.
Если вы расскажете мне больше о том, что вы пытаетесь сделать, я могу дать более конкретный совет, но в целом у меня обычно есть логика задачи, определенная в простом рубиновом классе в каталоге lib или как метод класса в модель, и это то, что будет вызываться из тела задачи (как в приведенном выше примере кода).