Выполнение задач Cron на Heroku

Я видел, что Heroku взимает 15 долларов за месяц, чтобы запустить Delayed Job, и $ 3 / mo для ежедневного выполнения задач cron. Можно ли полностью пропустить это и запустить мои собственные задачи cron вручную? Или они каким-то образом выясняют, что я выполняю задачи cron?

Я не совсем уверен, что вы подразумеваете под «запускать мои собственные задачи cron вручную». В частности, для cron вам необходим доступ к crontab , которым они могут управлять, поскольку они являются их серверами. Если у вас есть другой способ сделать это, вероятно, будет хорошо, но имейте в виду, что ваше приложение не привязано к определенному серверу при работе под Heroku и что сервер будет меняться между исполнениями.

Кроме того, если они не изменили его с момента последнего проверки, вы можете запускать ежедневные задания cron бесплатно, но почасовая оплата стоит 3 доллара США / месяц.

EDIT : Да, ежедневные кроны бесплатны. См. http://addons.heroku.com/ .

Если вы установите gem Heroku на свой компьютер, вы можете вручную запустить свои задачи cron следующим образом:

 $ heroku rake cron (in /disk1/home/slugs/xxxxxx_aa515b2_6c4f/mnt) Running cron at 2010/04/25 10:28:54... 

Это будет выполнять тот же самый код, что и ежедневное / ежечасное дополнение к Хроку; т. е. для этого в вашем приложении должен быть Rakefile с задачей cron , например:

 desc "Runs cron maintenance tasks." task :cron do puts "Running cron at #{Time.now.strftime('%Y/%m/%d %H:%M:%S')}..." # TODO: your cron code goes here end 

Теперь добавьте команду heroku rake cron в crontab на любой ваш сервер Unix или даже прямо на crontab вашего персонального компьютера, если вы используете Linux или Mac OS X, и вы можете планировать задания cron для своего приложения Heroku, как вы, пожалуйста, и не платите за это.

Да, я успешно использовал задание cron на моем локальном сервере, который по существу работает

 $ heroku rake  

в какие бы промежутки сроки я ни требовал. Я использовал их как на осине, так и на бамбуковых стеках.

Вы также можете просто установить gem как rufus-scheduler, если вы используете приложение rails и планируете настройку таким образом. Я не знаю, по какой-то причине это плохая практика, но это то, что я делаю с моим приложением, и, похоже, это работает нормально.

Если вы хотите иметь запланированные задания, вы также можете использовать http://guardiano.getpeople.in, что является бесплатным сервисом (для 10 заданий) для планирования заданий.

Вам просто нужно настроить конечную точку HTTP в своем приложении, чтобы получать уведомления о событиях в POST или GET, а также вы можете установить некоторые дополнительные параметры, чтобы предотвратить несанкционированные действия.

Таким образом, вы назначили работу в Guardiano, которая будет http://yourapp.com/youraction и оставит «минуты» пустым, если вы хотите, чтобы ваши действия выполнялись один раз в будущем или задавали минуты тому, что вы хотите запустить свое действие каждые X минут , Таким образом, вам нужно создать свою конечную точку для своего приложения, и когда этот EP называется, вы что-то выполняете.

Таким образом, ваше приложение может спать, и вам не нужно тратить деньги и время на создание рабочих мест и заботиться о том, чтобы они работали правильно.

ИМХО, если вам нужно что-то быстро для MVP, или вам нужно настроить множество заданий для разных приложений, чем бесплатный сервис вроде того, где вы действительно можете вывести на аутсорсинг cronjobs.

Был также Heroku Addon, названный Temporize, чтобы сделать это, но я не уверен, что все еще жив и работает

Interesting Posts
Давайте будем гением компьютера.