R
Robin Becker
I wish to prevent a python script from running twice; it's an hourly job, but
can take too long.
My simplistic script looks like
........
def main():
fn = 'MARKER'
if os.path.isfile(fn):
log('%s: hourly job running already' % formatTime())
else:
f = open(fn,'w')
f.write(str(os.getpid()))
f.close()
try:
work()
finally:
os.remove(fn)
if __name__=='__main__':
main()
but it occurs to me that I might be killed with prejudice during the long
running work(). Is there a smart way to avoid running simultaneously.
can take too long.
My simplistic script looks like
........
def main():
fn = 'MARKER'
if os.path.isfile(fn):
log('%s: hourly job running already' % formatTime())
else:
f = open(fn,'w')
f.write(str(os.getpid()))
f.close()
try:
work()
finally:
os.remove(fn)
if __name__=='__main__':
main()
but it occurs to me that I might be killed with prejudice during the long
running work(). Is there a smart way to avoid running simultaneously.