Приложение openhift переходит в режим ожидания и останавливает работу cron

Я использую openshift для запуска script время от времени с cron-картриджем. однако, поскольку у моего приложения нет активности в сети (пока) он простаивает, и мой процесс не запускается.

можно было подумать о уродливом решении для создания фальшивой веб-загрузки, используя другую службу (например, ifttt, чтобы постоянно восстанавливать страницу но это звучит неправильно.

может быть лучшее решение?

Ответы

Ответ 1

по-видимому, единственный способ - обмануть openshift, чтобы иметь исходящий трафик, я использовал бесплатную учетную запись https://www.site24x7.com для этого

Ответ 2

OpenShift будет простаивать ваше приложение после 24 часов бездействия 1 но вы можете добавить почасовое задание cron в ваше приложение, чтобы сохранить себя в живых.

.openshift/хрон/час/ping.sh

#!/bin/bash

PATH=/bin:/usr/bin:/usr/sbin
app_url=http://$OPENSHIFT_APP_DNS/

curl --insecure --location --silent --fail "$app_url" >/dev/null

Предполагая, что ваше приложение уже не работает и не запускает задание cron: -)


1 По-видимому, период простоя раньше 48 часов, но теперь это 24 часа в соответствии с таблицу цен OpenShift. Другими словами, ежедневное задание pinger cron не будет делать это за вас.

OpenShift Pricing Chart—Free gears get idled after 24 hours of inactivity

Ответ 3

Картридж Openshift переходит в режим бездействия через 24 часа бездействия.

Активность считается получением запроса Get в приложении, созданного за пределами вашего картриджа (поэтому проверка вашего приложения из вашего собственного картриджа не работает).

Вы можете использовать любую бесплатную службу pinging для отправки вашего приложения через определенный промежуток времени (< 24hrs).

Вы можете использовать Pingdom. Я нашел успех, используя его. Он также обеспечивает приятную панель управления и графики времени отклика. Вы будете уведомлены, если есть какие-либо проблемы с подключением к вашему приложению или если оно не работает. Вы можете управлять своей учетной записью с помощью своих мобильных приложений.

Есть и другие бесплатные услуги pinging. Не стесняйтесь Google и попробуйте другие услуги. Сделайте комментарий, если найдете хороший, может быть полезной для некоторых: -).

Ответ 4

Это не "трюк" как таковой, но пока у вас есть последовательный входящий трафик, ваше снаряжение не будет работать.

Ответ 5

Бронза свободна. Все планы сохраняют свободный материал, например. 3 бесплатных передачи и т.д. Вы будете платить только 0,02 часа на передачах выше 3. Поэтому, если вы используете свободную слезу и не используете 3 передачи, вы должны быть в безопасности, чтобы перейти на бронзу и оставаться свободными.

Ответ 6

В приложении nodejs:

  • Создайте httpserver, способный отправить страницу запроса получения
  • Включить задание cron в список заданий вашего массива, который каждый час отправляет сообщение на внешнюю страницу (php, jsp или каждый вид "страницы", которые могут создавать запрос на завивание).

На внешней странице:

  • Выполните логику задания (необязательно, потому что вы можете использовать job2, job3..jobn и оставить это задание только для того, чтобы удержать свое приложение в активном состоянии)
  • Вставьте где-нибудь в код запрос обратно на страницу сервера nodejs, используя библиотеку php curl.

В этом случае:

  • В каждый час тайм-аут простоя будет reset, и ваше приложение будет бодрствовать
  • Вы можете назначить задания на внешние страницы и/или nodejs

Надеюсь, это поможет кому-то.

EDIT: Извините, он больше не работает. Независимо от того, какую стратегию вы используете, они смогут обнаруживать систематические запросы, исходящие из определенного IP-адреса, и исключать эту ситуацию, принося ваше приложение бездействующим за деньги, потому что все знают, что BRONZE не БЕСПЛАТНО. Он стоит не менее 0,02 $/час.