Пишу на питоне недавно, и тут встала задача написать демон(разработка ведётся пока под линукс).
Поизучал потоки и прочее.В инете довольно много разных реализаций.
Стоит задача написать демон, который будет раз в какое то время запускать некоторые задачи + например по сокетному коннекту запускать их принудительно(пока не реализовывал).
Хотел поинтересоваться на правильном ли я пути.
Пока реализовал таймеры примерно так(на примере открытия файла раз в какой то интервал):
from threading import Timer
import threading
import time
class MyDaemon(threading.Thread):
flag_run = 1
cnt_time = 0
file_check = 0
file_interval = 10000
def run(self):
self.setDaemon(False)
self.file_check = Timer(file_interval,self.check_file)
self.file_check.start()
def check_file(self):
if self.flag_run==1:
handle = open(“test_file.txt”)
if handle:
content = “”.join()
else:
print “file not found”
self.file_check = Timer(file_interval,self.check_file)
self.file_check.start()
daemon = MyDaemon()
daemon.start()
print ‘Daemon started…..’
В данном варианте он будет работать вечно.Но вопрос в том, “правильная” ли это реализация для данной задачи?
Т.к остальные действия я пока хочу делать по похожей схеме.
Ну и + меня смутило что постоянно меняется PID у процесса…
Жду мнения професионалов.