Her dakika bir python betiği (job.py) çalıştırmam gerekiyor. Bu betik zaten çalışıyorsa başlatılmamalıdır. Yürütme süresi 10 saniye ile birkaç saat arasında olabilir. Python betiğini sadece cron ile çalıştırıyorsanız
Yani benim crontab'ınıza içine koyun:* * * * * root cd /home/lorenzo/cron && python -u job.py 1>> /var/log/job/log 2>> /var/log/job/err
Ben sürüsü kullanmak, zaten çalışırken senaryoyu başlayan önlemek için().
import fcntl
import time
import sys
def doIncrediblyImportantThings():
for i in range (100):
sys.stdout.write ('[%s] %d.\n' % (time.strftime ('%c'), i))
time.sleep (1)
if __name__ == '__main__':
f = open ('lock', 'w')
try: fcntl.lockf (f, fcntl.LOCK_EX | fcntl.LOCK_NB)
except:
sys.stderr.write ('[%s] Script already running.\n' % time.strftime ('%c'))
sys.exit (-1)
doIncrediblyImportantThings()
Bu yaklaşım iş gibi görünüyor:
Bu
komut dosyası (job.py) 'dir.Eksik olduğum bir şey var mı? Bu yaklaşımı kullanarak karşılaşabileceğim herhangi bir sıkıntı var mı?
fazlası var tavsiye veya bu davranışı elde etme "doğru" yolu var mı?
Herhangi bir öneriniz için teşekkür ederim.
Büyük soru. – erjoalgo