Foros del Web » Programación para mayores de 30 ;) » .NET »

Programar cada hora una acción

Estas en el tema de Programar cada hora una acción en el foro de .NET en Foros del Web. Buenas: Necesito programar una acción para que se ejecute cada hora independientemente si está alguien o no en la web. Es un proceso que debe ...
  #1 (permalink)  
Antiguo 27/03/2007, 11:41
Avatar de mruiz  
Fecha de Ingreso: septiembre-2001
Ubicación: Reykjavík
Mensajes: 138
Antigüedad: 22 años, 8 meses
Puntos: 0
Programar cada hora una acción

Buenas:

Necesito programar una acción para que se ejecute cada hora independientemente si está alguien o no en la web. Es un proceso que debe mirar en otra web para ver si tiene o no un determinado contenido por lo que debe hacerlo en background debido a que puede tardar algo de tiempo.

¿Sabéis cómo realizarlo con ASP.NET?

Gracias.
__________________
Mario Ruiz
http://tcberglind.blogspot.com
  #2 (permalink)  
Antiguo 27/03/2007, 11:59
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Re: Programar cada hora una acción

Como hay mucha forma de resolver una tarea acá te dejo estos enlace para que los leas, a lo mejor te dan ideas.

http://www.forosdelweb.com/f29/servicio-web-474730/

http://www.forosdelweb.com/f29/servicio-web-que-lance-aplicacion-473291/

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #3 (permalink)  
Antiguo 27/03/2007, 12:04
Avatar de mruiz  
Fecha de Ingreso: septiembre-2001
Ubicación: Reykjavík
Mensajes: 138
Antigüedad: 22 años, 8 meses
Puntos: 0
Re: Programar cada hora una acción

Gracias por los enlaces.

Los he leído y la verdad que sigo con el mismo problema. Gracias de todas formas.
__________________
Mario Ruiz
http://tcberglind.blogspot.com
  #4 (permalink)  
Antiguo 27/03/2007, 17:49
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Programar cada hora una acción

puedes crear un windows service y que se encargue de realizar las tareas que necesitas..

http://www.15seconds.com/issue/021007.htm
http://www.codeproject.com/useritems...rvice_Host.asp

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 28/03/2007, 11:29
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años
Puntos: 0
Re: Programar cada hora una acción

Si, puedes crear un windows service y le agregas un timer para que se ejecute cada hora.

Yo cree uno hace poco y me ha funcionado muy bien:

http://msdn2.microsoft.com/es-es/lib...8a(VS.80).aspx
  #6 (permalink)  
Antiguo 28/03/2007, 12:22
Avatar de mruiz  
Fecha de Ingreso: septiembre-2001
Ubicación: Reykjavík
Mensajes: 138
Antigüedad: 22 años, 8 meses
Puntos: 0
Re: Programar cada hora una acción

El problema es que la aplicación es ASP.NET y tengo que subirla a un servidor IIS en hosting por lo que no puedo crear servicios de este tipo.
__________________
Mario Ruiz
http://tcberglind.blogspot.com
  #7 (permalink)  
Antiguo 28/03/2007, 13:07
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Programar cada hora una acción

en ese caso no se puede hacer como lo buscas, en último de los casos (que es la forma fea, incorrecta, dummy, sacada de la manga,etc ) es usar sesiones y que tengas una funcion que se encargue de tomar la hora inicial y el tiempo que requieres para que se ejecute cierta accion, la compares y la realices, pero eso no quiere decir que va a funcionar porque el usuario puede cerrar su browser, puede dejar de utilizarlo, etc..etc...

es por eso que existen los "servicios"
  #8 (permalink)  
Antiguo 28/03/2007, 13:59
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Programar cada hora una acción

Se podría hacer con un módulo HTTP y un Timer, pero aún así, alguien tendría que iniciar esa acción.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #9 (permalink)  
Antiguo 28/03/2007, 16:05
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Programar cada hora una acción

Puedes crear una Tarea en el task manager que se ejecute cada hora. En la parte donde escoges el programa escribe

iexplore "http://www.tuserver.com/pagina.aspx"

Esto abrira una ventana de IE automaticamente ejecutando el codigo del evento Page_Load.

Asegurate que el checkbox que dice "Run only if logged on" no este seleccionado. (No tengo Windows en Español, asi que no se exactamente como diga).

En RunAs tienes que poner un usuario y password que tenga los privilegios para abrir esa pagina web.


Intentalo y ojala que sirva para sacarte del apuro
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #10 (permalink)  
Antiguo 28/03/2007, 16:11
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Programar cada hora una acción

Cita:
Iniciado por Alex Reyes
Puedes crear una Tarea en el task manager que se ejecute cada hora.
Cita:
Iniciado por mruiz
tengo que subirla a un servidor IIS en hosting por lo que no puedo crear servicios de este tipo.
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #11 (permalink)  
Antiguo 28/03/2007, 16:27
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Programar cada hora una acción

Lo que comento es algo como esto:
Código:
public class FooModule : System.Web.IHttpModule
{
    static System.Threading.Timer timer;
    const int interval = 3600000; // cada hora

    #region IHttpModule Members
    public void Dispose() {
        timer = null;
    }

    public void Init(System.Web.HttpApplication application) {
        if (timer == null) {
            timer = new System.Threading.Timer(new System.Threading.TimerCallback(HacerAlgo), application.Context, 0, interval);
        }
    }
    #endregion

    private void HacerAlgo(object sender) {
    }
}
En el web.config:
Código:
<?xml version="1.0"?>
<configuration>
    <system.web>
        <!-- ... -->
        <httpModules>
            <add name="FooModule" type="FooModule"/>
        </httpModules>
    </system.web>
</configuration>
Pero como anteriormente dije, alguien tiene que hacer que ese módulo empieze a hacer su trabajo.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño

Última edición por xknown; 28/03/2007 a las 16:35
  #12 (permalink)  
Antiguo 28/03/2007, 21:41
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Programar cada hora una acción

La tarea del Task Manager no tiene que estar necesariamente en el servidor. Esta tarea puede existir en cualquier computadora con acceso a Internet.

Lo unico que necesita es abrir la pagina, y eso lo puede hacer corriendo IE o FF o cualquier browser y pasar como parametro la pagia que quiere ejecutar. Repito, esto se puede hacer desde cualquier computadora con acceso a Internet.
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #13 (permalink)  
Antiguo 29/03/2007, 05:51
Avatar de mruiz  
Fecha de Ingreso: septiembre-2001
Ubicación: Reykjavík
Mensajes: 138
Antigüedad: 22 años, 8 meses
Puntos: 0
Re: Programar cada hora una acción

Ya pero es que hacerlo para que tenga que tener encendido un ordenador en casa... no creo que sea muy buena solución podría ser un apaño para un tiempo.

Con respecto a la solución que plantea XKnown me parece muy buena se podría probar pero creo que he encontrado otra mejor:

Crear un timer como control del servidor en el global.asax y añadirle un handler, ahora el único problema es que si no entra nadie en la web durante una hora el application se lleva a efecto y no se ejecutaría... tengo que probarlo.

Si se os ocurre alguna cosa más....
__________________
Mario Ruiz
http://tcberglind.blogspot.com
  #14 (permalink)  
Antiguo 29/03/2007, 09:26
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Programar cada hora una acción

Cita:
Iniciado por mruiz Ver Mensaje
Con respecto a la solución que plantea XKnown me parece muy buena se podría probar pero creo que he encontrado otra mejor:

Crear un timer como control del servidor en el global.asax y añadirle un handler, ahora el único problema es que si no entra nadie en la web durante una hora el application se lleva a efecto y no se ejecutaría... tengo que probarlo.
Lo que comentas, en esencia es lo mismo que la alternativa que expuse. Ahora para que alguien inicie esa acción me parece que es algo más trivial -podrías valerte incluso de servicios que verifican el uptime de un servidor...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #15 (permalink)  
Antiguo 29/03/2007, 09:43
Avatar de mruiz  
Fecha de Ingreso: septiembre-2001
Ubicación: Reykjavík
Mensajes: 138
Antigüedad: 22 años, 8 meses
Puntos: 0
Re: Programar cada hora una acción

Lo que no sé es si tienes un timer en el global.asax, si no entra nadie en la web, la aplicación se viene abajo o continúa activa por la actividad del timer?
__________________
Mario Ruiz
http://tcberglind.blogspot.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.