[Zope] Xron

George Stroussopoulos Georgios.Strousopoulos@eurodyn.com
Thu, 08 Aug 2002 11:16:48 +0300


This is a multi-part message in MIME format.
--------------090404070909020800060302
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi. I have been using Xron 0.0.10 inside  Zope 251.
I have a problem in xrondtml method.
It seems that when i schedule a xron event to run at a specific time, it 
runs  but it fails to reschedule itself  for the next run.
It always fails to rescedule and disarms the xron (time goes to 1970 
[datetime(0) not in eventtime + reschedule interval] [the method i call 
with xron runs correctly].
I use xron in several parts of my code.
It works fine in a part of code [it manages correctly to reschedule 
itself] but when i am trying to trigger it manually i get
the message to download it.In other part of code it works only manually 
an not in the background procedure.

Below is a part of the code to help you:

I use xron inside a class called AllChannelsFolder.
In the init method i wrote:
   def __init__(self, id, title, description,proxy_server_url, 
theContainer):
       """
       Acquire the parent properties
       """
       self = self.__of__(theContainer)
       self.id = id
       self.title = title
       self.description = description
       self.proxy_server_url = proxy_server_url

       self.discoveryExecuteAt=DateTime()+1.0 # initial value is tomorrow
       self.discoveryPeriodDays=0.0

       #Initialise the periodic discovery event
       newEventId=id+'_XronDTMLMethod'
       newEventTitle=title+' Discovery method (using Xron)'
       discoverFile='<dtml-call expr="this().findAllChannels(REQUEST)">'
       newEvent=XronDTMLMethod(newEventId, newEventTitle, discoverFile, 
self.discoveryExecuteAt, self.discoveryPeriodDays)
       self._setObject(newEventId, newEvent)
       self.discoverXronDTMLMethod=newEvent

       Inside the findAllChannels method that xron calls :
       ... in the end of code i have this:
       if REQUEST is not None:
           try:
               u=self.absolute_url()
           except:
               # Log the catched exception
               #
               logExc(__name__, TRACE, MSG_URL_COMPUTING_EXC)
               if rfind(REQUEST['URL']) == -1:
                   # We are in the manage_trigger() or in the trigger() 
method of the Xron contained object
                   # Redirect to portal URL, i.e. URL2
                   u=REQUEST['URL2']
               else:
                   # We were called from the Discover tab => use URL1 
for redirection
                   u=REQUEST['URL1']
           u2=u+'/manage_workspace'
           REQUEST.RESPONSE.redirect(u2)
       return self.loadingError

The above code works fine when i schedule it, but it does not work with 
the manually way[trigger].


In the following code i use xron in a class named PortalFolder:

   the init method is basiclly the same:
   def __init__(self, id, title, description,theContainer, 
proxy_server_url=''):
       """
       Constructor
       """
       self = self.__of__(theContainer)
       self.id = id
       self.title = title
       self.description = description
       self.discoveryExecuteAt=DateTime()+1.0 # initial value is tomorrow
       self.discoveryPeriodDays=0.0

       # Initialise the periodic discovery event
       newEventId=id+'_XronDTMLMethod'
       newEventTitle=title+' Discovery method (using Xron)'
       discoverFile='<dtml-call expr="this().discover(REQUEST)">'
       newEvent=XronDTMLMethod(newEventId, newEventTitle, discoverFile, 
self.discoveryExecuteAt, self.discoveryPeriodDays)
       self._setObject(newEventId, newEvent)
       self.discoverXronDTMLMethod=newEvent
       self.proxy_server_url=proxy_server_url

   the discover method that xron calls has in the end i have:

      if REQUEST is not None:
           try:
               u=self.absolute_url()
           except:
               #u=REQUEST['URL1']
               logExc(__name__, TRACE, MSG_URL_COMPUTING_EXC)
               if rfind(REQUEST['URL']) == -1:
                   u=REQUEST['URL2']
               else:
                   u=REQUEST['URL1']
           u2=u+'/manage_workspace'
           print "u2:"
           print u2
           REQUEST.RESPONSE.redirect(u2)
   return theResult

The method discover runs ok but xron now fails to reschedule itself.
It throws this :
2002-08-06T07:20:42 PROBLEM(100) Products.Xron.Loggerr
Trigger event: 
http://exterminator:8082/Tests/CPM_V2/Portals/Portals_XronDTMLMethod
Trigger time: 2002/08/06 10:20:40 GMT+3
Failed to trigger event.
Type=bci.ServerError
Val=302 (File: Unknown Line: Unknown)
302 Moved Temporarily for 
http://exterminator:8082/Tests/CPM_V2/Portals/Portals_XronDTMLMethod/trigger 

------
2002-08-06T07:20:42 PROBLEM(100) Products.Xron.Loggerr Disarmed event


Can you help me?
Am i missing something?
Any help and suggestion could be usefull!
I hope i made clear myself.

Thanks in advance.

Georgios Stroussopoulos
Athens
Greece
Software Engineer.
Georgios.Strousopoulos@eurodyn.com
strusos@yahoo.com


--------------090404070909020800060302
Content-Type: text/plain;
 name="Xron.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="Xron.txt"

Hi. I have been using Xron 0.0.10 inside  Zope 251.
I have a problem in xrondtml method.
It seems that when i schedule a xron event to run at a specific time, it runs  but it fails to reschedule itself  for the next run.
It always fails to rescedule and disarms the xron (time goes to 1970 [datetime(0) not in eventtime + reschedule interval] [the method i call with xron runs correctly].
I use xron in several parts of my code.
It works fine in a part of code [it manages correctly to reschedule itself] but when i am trying to trigger it manually i get
the message to download it.In other part of code it works only manually an not in the background procedure.

Below is a part of the code to help you:

I use xron inside a class called AllChannelsFolder.
In the init method i wrote:
   def __init__(self, id, title, description,proxy_server_url, theContainer):
       """
       Acquire the parent properties
       """
       self = self.__of__(theContainer)
       self.id = id
       self.title = title
       self.description = description
       self.proxy_server_url = proxy_server_url

       self.discoveryExecuteAt=DateTime()+1.0 # initial value is tomorrow
       self.discoveryPeriodDays=0.0

       #Initialise the periodic discovery event
       newEventId=id+'_XronDTMLMethod'
       newEventTitle=title+' Discovery method (using Xron)'
       discoverFile='<dtml-call expr="this().findAllChannels(REQUEST)">'
       newEvent=XronDTMLMethod(newEventId, newEventTitle, discoverFile, self.discoveryExecuteAt, self.discoveryPeriodDays)
       self._setObject(newEventId, newEvent)
       self.discoverXronDTMLMethod=newEvent

       Inside the findAllChannels method that xron calls :
       ... in the end of code i have this:
       if REQUEST is not None:
           try:
               u=self.absolute_url()
           except:
               # Log the catched exception
               #
               logExc(__name__, TRACE, MSG_URL_COMPUTING_EXC)
               if rfind(REQUEST['URL']) == -1:
                   # We are in the manage_trigger() or in the trigger() method of the Xron contained object
                   # Redirect to portal URL, i.e. URL2
                   u=REQUEST['URL2']
               else:
                   # We were called from the Discover tab => use URL1 for redirection
                   u=REQUEST['URL1']
           u2=u+'/manage_workspace'
           REQUEST.RESPONSE.redirect(u2)
       return self.loadingError

The above code works fine when i schedule it, but it does not work with the manually way[trigger].


In the following code i use xron in a class named PortalFolder:

   the init method is basiclly the same:
   def __init__(self, id, title, description,theContainer, proxy_server_url=''):
       """
       Constructor
       """
       self = self.__of__(theContainer)
       self.id = id
       self.title = title
       self.description = description
       self.discoveryExecuteAt=DateTime()+1.0 # initial value is tomorrow
       self.discoveryPeriodDays=0.0

       # Initialise the periodic discovery event
       newEventId=id+'_XronDTMLMethod'
       newEventTitle=title+' Discovery method (using Xron)'
       discoverFile='<dtml-call expr="this().discover(REQUEST)">'
       newEvent=XronDTMLMethod(newEventId, newEventTitle, discoverFile, self.discoveryExecuteAt, self.discoveryPeriodDays)
       self._setObject(newEventId, newEvent)
       self.discoverXronDTMLMethod=newEvent
       self.proxy_server_url=proxy_server_url

   the discover method that xron calls has in the end i have:

      if REQUEST is not None:
           try:
               u=self.absolute_url()
           except:
               #u=REQUEST['URL1']
               logExc(__name__, TRACE, MSG_URL_COMPUTING_EXC)
               if rfind(REQUEST['URL']) == -1:
                   u=REQUEST['URL2']
               else:
                   u=REQUEST['URL1']
           u2=u+'/manage_workspace'
           print "u2:"
           print u2
           REQUEST.RESPONSE.redirect(u2)
   return theResult

The method discover runs ok but xron now fails to reschedule itself.
It throws this :
2002-08-06T07:20:42 PROBLEM(100) Products.Xron.Loggerr
Trigger event: http://exterminator:8082/Tests/CPM_V2/Portals/Portals_XronDTMLMethod
Trigger time: 2002/08/06 10:20:40 GMT+3
Failed to trigger event.
Type=bci.ServerError
Val=302 (File: Unknown Line: Unknown)
302 Moved Temporarily for http://exterminator:8082/Tests/CPM_V2/Portals/Portals_XronDTMLMethod/trigger
------
2002-08-06T07:20:42 PROBLEM(100) Products.Xron.Loggerr Disarmed event


Can you help me?
Am i missing something?
Any help and suggestion could be usefull!
I hope i made clear myself.

Thanks in advance.

Georgios Stroussopoulos
Athens
Greece
Software Engineer.
Georgios.Strousopoulos@eurodyn.com
strusos@yahoo.com

--------------090404070909020800060302--