[Zope] Xron Problem
George Stroussopoulos
Georgios.Strousopoulos@eurodyn.com
Thu, 08 Aug 2002 10:35:51 +0300
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'
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
[Note: I have setup permissions with proxy roles.]
Can anyone 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.
strusos@yahoo.com