He visto que Heroku cobra $ 15/mes para ejecutar trabajos retrasados, y $ 3/mes para ejecutar tareas de cron a diario. ¿Es posible omitirlo por completo y ejecutar mis propias tareas cron manualmente? ¿O están de alguna manera entendiendo que estoy ejecutando tareas cron?Ejecutando tareas de cron en Heroku
Respuesta
No estoy del todo seguro de lo que quiere decir con "ejecutar mis propias tareas de cron manualmente". Para cron específicamente, necesita acceso a crontab
, que pueden controlar, ya que son sus servidores. Si tiene otra forma de hacerlo, probablemente estaría bien, pero tenga en cuenta que su aplicación no está vinculada a un servidor específico cuando se ejecuta bajo Heroku, y que el servidor cambiará de ejecuciones a.
Además, a menos que lo hayan cambiado desde la última vez que lo verifiqué, puede ejecutar tareas diarias de cron de forma gratuita, pero cada hora cuesta $ 3/mes.
EDIT: Sí, los crones diarios son gratuitos. Ver http://addons.heroku.com/.
Si instala el Heroku gem en su ordenador, a continuación, puede ejecutar sus tareas cron manualmente de la siguiente manera:
$ heroku rake cron
(in /disk1/home/slugs/xxxxxx_aa515b2_6c4f/mnt)
Running cron at 2010/04/25 10:28:54...
Esto ejecutará el mismo código como de Heroku diaria/cron cada hora complemento lo hace; es decir, para que esto funcione, la aplicación debe tener un Rakefile con una tarea cron
, por ejemplo:
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
Ahora, sólo tiene que añadir el comando heroku rake cron
a un crontab en cualquier servidor Unix de los suyos, o incluso directamente a crontab
de su computadora personal si está ejecutando Linux o Mac OS X, y puede programar trabajos cron para su aplicación Heroku como lo desee y sin que le cobren por ello.
Parece que limitan la velocidad de esto para evitar el abuso. Ten cuidado No hace falta decir que probablemente no deberías usar esto para una máquina de producción ... :) – avocade
avocada, eso es bueno saberlo. ¿Tiene un enlace a más información sobre la limitación de velocidad? –
Tal vez los tiempos han cambiado desde 2010, pero no veo por qué lo limitarían. Cuando inicias una tarea de rake, estás pagando por ese tiempo. Inicie la tarea de rake 1000 veces y pague 1000 * taskduration. – danneu
Sí, he utilizado con éxito una tarea programada en mi servidor local que ejecuta esencialmente
$ heroku rake <rake task>
a cualquier intervalos he requerido. He usado tanto en pilas de álamo temblón como de bambú.
Cheapskate: PPP – mxcl
También puede instalar una gema como rufus-scheduler si está ejecutando una aplicación de rieles y configurar la programación de esa manera. No sé si esto es una mala práctica por algún motivo, pero es lo que hago con mi aplicación, y parece funcionar bien.
Si desea tener trabajos programados también puede usar http://guardiano.getpeople.in que es un servicio gratuito (para 10 trabajos) para la programación de trabajos.
Solo necesita configurar un punto final HTTP en su aplicación para recibir notificaciones de eventos en POST o GET y también puede establecer algunos parámetros adicionales para evitar acciones no autorizadas.
Así que establece un trabajo en Guardiano que calificará http://yourapp.com/youraction y dejará "minutos" en blanco si desea que la acción se ejecute una vez en el futuro o establecer los minutos a los que desea ejecutar su acción cada X minutos. De esta forma, solo tienes que crear tu endpoint para tu aplicación y cuando se llama a este EP ejecutas algo.
Así que su aplicación puede dormir y no necesita gastar dinero y tiempo en la creación de trabajos y tener cuidado de que funcionen correctamente.
En mi humilde opinión, si necesita algo rápido para un MVP o necesita configurar una gran cantidad de puestos de trabajo para diferentes aplicaciones que un servicio gratuito como el que realmente puede externalizar cronjobs es bastante bueno.
No era aslo un Heroku Addon llama temporizar a hacer eso, pero no estoy seguro todavía está vivo y trabajando
El enlace está roto. – chrishasbrouck
- 1. "Siempre que" la gema ejecutando trabajos cron en Heroku
- 2. Ejecutando un Cron Job
- 3. Ejecutando Phantomjs en Heroku
- 4. Tareas programadas (como cron) en PHP
- 5. Creación de un programador de tareas cron
- 6. ¿Cómo emular las tareas cron en un servidor de Windows?
- 7. Ejecutando un script de Python usando Cron?
- 8. Heroku: ejecutando imagemagick con clip
- 9. Ejecutando tareas Dependientes en paralelo en Java
- 10. Maven Antrun No ejecutando tareas
- 11. Aplicación iOS ejecutando tareas en el fondo
- 12. ¿Las tareas del programador Heroku cuestan dinero?
- 13. Ejecutando Heroku Console no se inicia
- 14. Google App Engine - Tareas de tareas frente a trabajos de Cron
- 15. Ejecutando trabajador con trabajo de retraso en Heroku?
- 16. Tareas, trabajos Cron o Backends para una aplicación
- 17. cómo ejecutar el archivo php usando tareas cron
- 18. Ejecutando tareas de trabajo secuencialmente en varios entornos usando Jenkins
- 19. Creación de trabajos de cron en C#
- 20. Programador de tareas de Windows para ejecutar tareas en segundos
- 21. Cron scheduler "disable pattern"
- 22. Ejecutando funciones en paralelo
- 23. Ayuda con la gema "Whenever" en Ruby para las tareas cron
- 24. Tareas recurrentes en una aplicación Ruby On Rails: ¿Cron u otra?
- 25. programar un trabajo cada minuto Rails 3.1 en Heroku
- 26. ¿Una tarea cron mata la última ejecución de cron?
- 27. PHP Concurrency via Cron
- 28. comisión si ya se está ejecutando
- 29. ¿Cuál es la versión de cron de Windows?
- 30. ¿Puede una secuencia de comandos bash decir si se está ejecutando a través de cron?
Ahora existe el programador complemento: http://addons.heroku.com/scheduler que es gratis. - El complemento del programador ejecutará cualquier cantidad de comandos en su aplicación, ya sea cada 10 minutos, cada hora o cada día. –
El complemento es gratuito, pero aún se le cobrará por las horas acumuladas por el proceso único que se inicia para el cron. –
@EnricoCarlesso, dice "total - 20 veces o 20 veces por día". ¿Significa que puedo ejecutarlo solo 20 veces al mes de forma gratuita? ¿Entonces no hay forma de correr 1 vez cada día gratis porque es 30 veces? –