You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.1 KiB
52 lines
1.1 KiB
#!/usr/bin/env python |
|
import csv |
|
import os |
|
from worker import worker |
|
|
|
|
|
def enqueue_task(): |
|
tasks_file = "tasks.csv" |
|
tasks = [] |
|
with open(tasks_file) as csvfile: |
|
rdr = csv.reader(csvfile, delimiter=',') |
|
tasks = list(rdr) |
|
if len(tasks) == 0: |
|
return None |
|
res = tasks[0][0] |
|
tasks = tasks[1:] |
|
with open(tasks_file, "w+") as csvfile: |
|
writer = csv.writer(csvfile) |
|
writer.writerows(tasks) |
|
return res |
|
|
|
|
|
def set_lock(value): |
|
lock_file = "learn.lock" |
|
exists = os.path.exists(lock_file) |
|
if exists == value: |
|
return False |
|
|
|
if value: |
|
open(lock_file, "w+") |
|
else: |
|
os.remove(lock_file) |
|
return True |
|
|
|
|
|
if __name__ == "__main__": |
|
if not set_lock(True): |
|
print("learn locked") |
|
exit(0) |
|
|
|
w = worker() |
|
while True: |
|
task = enqueue_task() |
|
if task is None: |
|
break |
|
|
|
w.start() |
|
w.add_task({"type": "learn", "anomaly_name": task}) |
|
w.add_task({"type": "predict", "anomaly_name": task}) |
|
w.stop() |
|
|
|
set_lock(False) |