Как установить PHP-скрипт как задание cron [Планировщик] bon HEROKU [dублировать]

Ответ от Steve Folly Я чувствую себя более эффективным.

Вот еще одно легкое и менее эффективное решение:

В решении используется remove_copy_if для копирования значений, которые мы хотим в новый контейнер, затем меняет содержимое исходного контейнера на содержимое нового:

std::map<int, std::string> aMap; ... //Temporary map to hold the unremoved elements std::map<int, std::string> aTempMap; //copy unremoved values from aMap to aTempMap std::remove_copy_if(aMap.begin(), aMap.end(), inserter(aTempMap, aTempMap.end()), predicate); //Swap the contents of aMap and aTempMap aMap.swap(aTempMap);
21
задан Lance Pollard 10 April 2010 в 02:46
поделиться

5 ответов

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

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

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

21
ответ дан Lucas Jones 16 August 2018 в 02:11
поделиться
  • 1
    Теперь есть надстройка планировщика: addons.heroku.com/scheduler , которая является бесплатной. - Надстройка планировщика будет запускать любое количество команд против вашего приложения каждые 10 минут, каждый час или каждый день. – Enrico Carlesso 25 November 2011 в 10:56
  • 2
    Аддон является бесплатным, но вы по-прежнему платите за часы динозавров, начисляемые разовым процессом, который запускается для cron. – user 14 November 2012 в 18:42
  • 3
    @EnricoCarlesso, он говорит «всего - 20 раз или 20 раз в день». Означает ли это, что я могу запустить его только 20 раз в месяц бесплатно? Таким образом, нет возможности запускать 1 раз в день бесплатно, потому что это 30 раз? – アレックス 30 November 2014 в 12:32
  • 4
    @AlexanderSupertramp, где он говорит, что? – Enrico Carlesso 30 November 2014 в 16:34
  • 5
    @EnricoCarlesso, на самом деле я смутил его с помощью addons.heroku.com/temporize , поэтому «Small Heroku Scheduler & quot; совершенно бесплатно? То, что мне нужно, это запустить задачу один раз в день в течение 5 минут или меньше. – アレックス 30 November 2014 в 17:47

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

  $ heroku rake cron (in / disk1 /  home / slugs / xxxxxx_aa515b2_6c4f / mnt) Запуск cron в 2010/04/25 10:28:54 ...  

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

  desc «Выполняет задачи обслуживания cron».  Задача: cron do puts «Running cron at # {Time.now.strftime ('% Y /% m /% d% H:% M:% S')} ..." # TODO: ваш cron-код заканчивается здесь   

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

10
ответ дан Arto Bendiken 16 August 2018 в 02:11
поделиться
  • 1
    Кажется, они ограничивают это, чтобы предотвратить злоупотребления. Имейте в виду. Излишне говорить, что вы, вероятно, не должны использовать это для производственной машины ... :) – avocade 13 May 2010 в 15:49
  • 2
    авокадо, это хорошо знать. У вас есть ссылка на дополнительную информацию о ограничении скорости? – Arto Bendiken 14 May 2010 в 09:11
  • 3
    Возможно, времена изменились с 2010 года, но я не понимаю, почему они оценивают это ограничение. Когда вы запускаете рейк-задачу, вы платите за это время. Запуск рейк-задачи 1000 раз, и вы платите за 1000 * taskduration. – danneu 5 January 2013 в 00:31

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

  $ heroku rake & lt; rake task & gt;   

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

4
ответ дан dsaronin 16 August 2018 в 02:11
поделиться

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

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

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

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

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

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

-5
ответ дан Lssslo 16 August 2018 в 02:11
поделиться

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

0
ответ дан Steven Michael Thomas 16 August 2018 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: