X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=Robots%2Fbkmk_rforking.py;h=4ad998403417398b15643f3de2809c4c7c382f22;hb=8094a1b37e535d529817c89f33c17e46fa84a4f5;hp=d33c38d5a9d7a6f046aebde0d10cde82bbdbd0ce;hpb=c9cfb54ef36e77aee7187e4533f063d407073ad8;p=bookmarks_db.git diff --git a/Robots/bkmk_rforking.py b/Robots/bkmk_rforking.py index d33c38d..4ad9984 100644 --- a/Robots/bkmk_rforking.py +++ b/Robots/bkmk_rforking.py @@ -3,11 +3,8 @@ This file is a part of Bookmarks database and Internet robot. """ -__version__ = "$Revision$"[11:-2] -__revision__ = "$Id$"[5:-2] -__date__ = "$Date$"[7:-2] __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2000-2011 PhiloSoft Design" +__copyright__ = "Copyright (C) 2000-2012 PhiloSoft Design" __license__ = "GNU GPL" __all__ = ['robot_forking'] @@ -25,7 +22,7 @@ from bkmk_objects import Robot # This is to catch 'close failed: [Errno 9] Bad file descriptor' message -# from os.close() in Subprocess.die() and errors from from the subprocess. +# from os.close() in Subprocess.die() and errors from the subprocess. sys.stderr = open("err.log", 'a') check_subp = None @@ -47,8 +44,25 @@ def restart_subp(log): subp_pipe = RecordFile(check_subp) +_set_subproc = True + class robot_forking(Robot): + subproc = 'urllib2' # Default subprocess + def check_url(self, bookmark): + global _set_subproc + if _set_subproc: + _set_subproc = False + + subproc = self.subproc + subproc_attrs = [] + for attr in dir(self): + if attr.startswith('subproc_'): + subproc_attrs.append((attr[len('subproc_'):], getattr(self, attr))) + if subproc_attrs: + subproc += ':' + ':'.join(['='.join((k,v)) for k,v in subproc_attrs]) + os.environ['BKMK_ROBOT'] = subproc + if not check_subp: restart_subp(self.log) # Not restart, just start afresh