Ich bin auf der Suche nach einem Daemon-Prozess, der einige Aufgaben bei der Eingabe ausführt. 99% der Zeit schweigt es über den Hintergrund, nichts zu tun und die Aufgaben sind kurz und wenige in der Zahl. Wie würde ich die Schnittstelle zwischen zwei Anwendungen erstellen, von denen eine die Aufgabe und den Daemon, der sie ausführt, konstruiert?Daemon-Prozess-Struktur
Ich dachte, dass der Daemon einen Ordner haben könnte, den ich regelmäßig überprüfe. Wenn dort einige Dateien sind, liest es es und folgt Anweisungen von dort.
Würde das gut funktionieren oder gibt es einen besseren Weg?
BEARBEITEN: Beispieldämoncode hinzugefügt.
#!/usr/bin/python
import time
from daemon import runner
class Daemon():
def __init__(self):
self.stdin_path = '/dev/null'
self.stdout_path = '/dev/tty'
self.stderr_path = '/dev/tty'
self.pidfile_path = '/tmp/foo.pid'
self.pidfile_timeout = 5
self.task_dir = os.path.expanduser("~/.todo/daemon_tasks/")
def run(self):
while not time.sleep(1):
if len(os.listdir(self.task_dir)) == 0:
for task in os.listdir(self.task_dir):
self.process_task(task)
def process_task(self, task):
# input: filename
# output: void
# takes task and executes it according to instructions in the file
pass
if __name__ == '__main__':
app = Daemon()
daemon_runner = runner.DaemonRunner(app)
daemon_runner.do_action()
Die Vollständigkeit der Implementierung finden Sie hier: https://gist.github.com/Jonksar/10d20fd6274f40ee9023e09c742f8951 –